検索結果 1443 件

by usao
2日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

>「PLAYERが下方向に進んでいる時の先の障害物調べる」処理

に限定した場合なら…

playerをある移動量だけ下方向に移動させた場合に
その移動先におけるplayerの当たり判定が図で白矩形で表される範囲であるとき,
図で赤くなっているマスのうちの最下段の4マスに関してのみ,それらが壁であるか否かの判定を行えばよい

…という話.
(この場合なら,Topの算出は不要で,{Bottom,Left,Right}だけ求めればいい)
by usao
2日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

> ソースを見せるのに抵抗があるのでしたら、文章でも流れ図的なものでもいいんで > 具体的な説明お願いできませんか? 具体的… ざっくりこの程度の話をしているのですが,不足がある感じですか? (下記コード例は,下方向に移動したときの話に限定せずに,"player"の当たり判定矩形全域に関する形) //マップチップのサイズ[pixel] const int MAP_CHIP_PIXEL_SIZE = 16; //pixel座標から,マップindex座標への変換 // //ただし,素の計算結果のindex値が,マップ配列領域外になる場合には, //有効範囲ぎりぎりの値に修正した結果の値を返す. /...
by usao
2日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

念のため補足しておくと, 私が書いているのは, >組み立て方 という側の話題に関する事柄のつもりで,質問者のコードが直面している問題への直接の答えではない. だから, 「別に質問者の方法はダメだからこうしろ」とか言っているわけじゃない.そこは誤解なきよう. 質問者のゴールは,質問者のコードのデバッグにあるハズ. > 最初からソースに対するそれくらいの議論、ないしは建設的な回答が頂ければな、 納得できない話かもしれないけれども, その議論自体が,解決のために不要かもしれない んですよね. 外界の人間がどこまで内容に突っ込まなきゃいけないのか,っていう程度が,外界の人間には最初からはわからない. ...
by usao
2日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

//調べるべき配列indexの両端を求む const int x_Left = PixelToArrayIndex( playerの当たり判定の左端pixel座標 ); const int x_Right = PixelToArrayIndex( playerの当たり判定の右端pixel座標 ); //調べるべき全配列要素について調査 for( int x=x_Left; x<=x_Right; ++x ) { //配列indexがxの箇所について判定 } この疑似コードにおけるxというのは, 質問者のコードにおいてfor文内で算出しているxに対応している. for内の //配列indexが...
by usao
4日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

> 組み立て方 とかいう話に相当するかどうかわかりませんけども, 今回の当たり判定の処理というのは 「移動先の当たり判定矩形の底辺を形成する全ての画素について,その画素が所属するマス(配列要素)を調べる」 を行うことに相当すると思われ, だったらそれをその通りに書くのが最も手っ取り早い. 素直にfor文で書いたらpixel座標についてのループになる. 「全ての画素」についてループを回すのは明らかに無駄だと思うならば,forのstep量を適切に増やせばよく, その際に注意すべき事柄は,うっかり最後の座標がチェック対象から外れないようにすることくらいか. さて,(予想通りの無風状態だが) > 組...
by usao
5日前
フォーラム: C言語何でも質問掲示板
トピック: C++で大文字小文字を区別しない置き換え+α
返信数: 6
閲覧数: 208

Re: C++で大文字小文字を区別しない置き換え+α

わざわざ変数WordSizeがあるんだから

offset = FoundPos + WordUpper.size();
 ↓
offset = FoundPos + WordSize;

ですね.
by usao
5日前
フォーラム: C言語何でも質問掲示板
トピック: C++で大文字小文字を区別しない置き換え+α
返信数: 6
閲覧数: 208

Re: C++で大文字小文字を区別しない置き換え+α

置き換える場所を探す作業は,大文字(あるいは小文字)の世界で行い, 置き換えは作業は元の文字列をベースにして行えばよいのではないでしょうか. (雰囲気コード) //引数を全て大文字化した文字列を返す inline std::string ToUpper( const std::string &Src ) { std::string Ret = Src; std::transform( std::begin(Ret), std::end(Ret), std::begin(Ret), toupper ); return Ret; } //Srcの中で,BadWordの部分を '*'に置き換える. ...
by usao
5日前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでC++を用いた3Dゲームのジャンプ処理について
返信数: 2
閲覧数: 124

Re: DirectXでC++を用いた3Dゲームのジャンプ処理について

せめて関数の単位の形でコードを提示できませんか.
その抜粋の仕方だと,最初の3行と,以降の条件分岐の処理の関係性が不明です.

少なくとも

コード:

void SumFunction()
{
  //ここに提示コードまるごと
}
みたいな形ではないのですよね?

で,それはそれとして,
「playerPos.yを変化させる処理が走るには,条件( playerPos.y>0 )を満たす必要がある」という点が
「鶏or卵」みたいな状態になっていたりしませんか?
by usao
5日前
フォーラム: C言語何でも質問掲示板
トピック: c言語での三角形の面積の求め方
返信数: 7
閲覧数: 276

Re: c言語での三角形の面積の求め方

> 絶対値をif文で処理する方法が分からなく

・絶対値を計算すること
・計算した絶対値を用いた条件文

の2つに分けたら,少しは見通しが良くなったりしますかね.

コード:

//例:
//aとbの差が10以下なら何かする
//

//「aとbの差(絶対値)」を求め,一旦,その値を変数に格納する
float TheAbs = fabs( a - b );  //※標準ライブラリを使う
//「aとbの差(絶対値)」が10以下なら…
if( TheAbs <= 10 )
{ 何かする }

> なぜかエラーが出るので;をうっています。。。。

なんつーかもう,そういう姿勢がダメ.
by usao
6日前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

少ない情報からない頭で考えてみるに、複数の壁があるときにおかしくなるということを考えると、 そもそも当たり判定の判定先が一つなのが奇妙に感じます。 もはや無意味だとは思いまが,一応…… 質問者のコードでは, 判定先が一つ ということはないです. forの奇怪な繰り返し条件により,判定箇所(x)を算出するループが最低2回は回ることが保証されているので, あとは,この繰り返し内で,iの値毎に算出されるxの値が異なれば,複数の箇所が判定先になる.  ↓ つまり,このコードで真っ先に疑うところは, 【iによって変動するxの算出具合がおかしい】のだろうということ. (だから,結果として判定することにな...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

さて,もう見てないっぽいけども,もうちょっと回答っぽい雰囲気のことを書くならば…… この当たり判定コードで算出される xの値は連続した値を取ることが期待されるハズです. (そうじゃないと判定が「歯抜け」になってしまうから) 例えば, PLAYERposX = 1 PLAYER横幅 = 33 の場合を考えてみます.暗算で. forループは i={0,1,2} で3回まわるでしょう. i=0のとき,最初のifの条件に合致するので,xは0です. i=1のとき,elseブロックの処理により,xは0です. i=2のとき,真ん中のelse ifの条件を満たし,xは2です. この暗算が合っていれば,x=1に...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

全く役にも立たない無駄話だが, > 正面だけの要素を割り出し うまく動かない場合には まずこういう枝葉末節の高速化の工夫みたいな要素をやめて, 素直に"player"の当たり判定の形状全体に関して行ってみればどうか,とか思うわけ. というか,本当に碁盤のマスの個数がたかだか16x16しかないのであれば 調べるべき配列要素を全く絞り込むことなく, 「壁」である全N個( N <= 16x16 )に関して毎度総当たりで調べても,問題がないんじゃ?とか思われる. 以下は本件とも無関係なさらなる無駄話であるが, まずは「効率はともかくシンプルでわかりやすくて妥当な結果が得られる」方法 から初めて, そ...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

オフトピック
> 処理の組み立て方

その塊コードじゃらちが明かない(から質問してるんでしょ?)なら
要素を細分化して,各処理の信頼性を確保した上で組み立てろ,というのは
「処理の組み立て方」のアドバイスには当たらないのか.

> 丸投げに感じました

これ,丸投げしている本人が言うのか.
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

>ちなみに、当たり判定を描画して、なんて >やってますから。 >やってて、解決しないから相談してるわけで。 つまり,その描画結果を観測してみた結果として, 【問題が発生する状況下において 当たり判定と重なる配列要素全てが的確に列挙されていることと, それらのうちのいくつかが壁であるという妥当な判定結果が生成されていること までを確認できている】 という主張ですよね. (要するに,このとき,「"player"は壁に当たっている」という結果が得られている,と.) であれば 【問題の原因は「当たり判定」の処理ではない】 と結論づけられるのであって, あたなたの言っている > 私の記載したソース(考え...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

んー,だから,あなたの場合において調べるべき事柄を描画して見ましょうよ. playerが上に進む場合は云々~の結果として そのplayerの移動先に関して壁とぶつかるかどうかを判定するために「配列のどこどこの要素を調べることになったのか」という結果に不安があるなら,その結果を可視化してみればどうですか. おそらく,配列の1要素が表示上は16x16[pixel]の領域に相当するんだろうから, "player"の当たり判定領域と,調べることになった配列要素群に相当する領域とを描画すれば 「調べるべき配列要素を列挙する処理」がまともに動いているかどうかわかるでしょ. 何なら,「壁に当たる」と判定され...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#む? 貼ったコード内の改行がいくつか失われた模様
オフトピック
プロジェクトの設定を「マルチバイト文字セットを使う」側にして
「文字列をcharの配列で表す」という世界でやるという選択肢だってありだと思うけど,いかんのかな.
OpenCV使ってるとファイル名とかにconst char*を求められるから,そうすることが多いんだけど.
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

(1)VisualStudioでWin32プロジェクトを新規に作る → ビルドするとウィンドウが出るコードが生成される (2)てきとーに外部変数に wchar_t WStr[100]; とか追加 (3)_tWinMain()のど頭に以下を記述 { setlocale(LC_ALL, ""); FILE *fp = fopen( "Test.txt", "r" ); char Buff[100]; fgets( Buff, 100, fp ); mbstowcs(WStr, Buff, 100); fclose( fp ); } (4)ファイル Test.txt は メモ帳 でANSIで保存.内...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
これは完全に善意のアドバイス.

他の場でこの内容の質問を行う際には,
「答えが欲しいのであって,答えにたどり着くための方法を教えてもらいたいわけではない」旨を最初に断った方がよい.
(個人的な偏見(?)では,プログラム系の質問では,このような場合にはデバッグ方法に関する回答がなされる率が高いので,同じことになることが危惧される)

また,同一の内容を複数の個所で質問すると
「マルチポスト」とだけ指摘されて終わってしまうことになりがちなので,
ここのURLを提示して「別の箇所で質問したけども,らちがあかなかった」旨を述べた方がよい.
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

そのような考えをお持ちなのであれば, 自身のコードを提示する時点で,コードの各所に関して「何でこのように書いているのか」の理由を明記した方がよろしいのでは? あなたのコードを見た人が > なんで mbstowcs が 3つもあるの? とかならないように. また,掲示板を見る他の初心者のことまで気に掛けるのであれば, 回答に不明瞭な点がある場合には,推測とか察するとかで終わらせずに, その時々でその回答をした相手に不明瞭な点を問うとよいのでは. (あなたの推測が正しくて話がそのまますんなり終わってしまったとしたら,まさにあなたが危惧する「初心者に理解できないログ」だけが残る事態になるのだから) ...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

要するに,
【自分ではデバッグ作業とか一切やりたくないんだからお前ら勝手にバグ見つけて俺に教えやがれ.無料で.】
という主張ですよね.

理由を見つける方法の話とかいらねーから,最初から理由だけをよこせ と.
じゃあ,他者はあなたにその理由を教えるために,どうやってその理由を見つけるんだろうね?
バグの理由を見つけるのには一般に絞り込み作業が必要だと思う.
理由だけをよこせ という主張は,他人に絞り込み作業をやらせていることに他ならないと思うんだが.
でもそれは相手が勝手にやったことだ!と.

ぐだぐだ言っているけど,ただのクレクレ君ですやん.くだらねぇ.
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 23
閲覧数: 710

Re: 2Dの衝突判定がキッチリと出来ない、、

オフトピック
どこをミスっているのかがわからないのは,処理を大きい塊で書いているからでは.
やるべき事柄をもっと小さい要素に分解して見てはどうでしょうか.
例えば,

・何もなく移動できた場合の,"PLAYER"の当たり判定(ここではPixel座標系(?)における矩形範囲か)を算出する処理
・Pixel座標系における矩形が与えられたとき,この矩形を包括するのに必要なマップのマスを列挙する処理

といった基本処理を書いて,それぞれをちゃんとテストする.
そうすれば,処理のどこの段階にミスがあるのかを絞り込みやすくなる.
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
> CSVファイル読み取りなどの仕事でも使う機会の多いコードの解説サイトとか

個人的には,「C言語でCSV読む」機会とかまず存在しない感だが……

仮に,世間一般に於いてはそのような機会がすこぶる多いのだとしても,
「よーし,CSVファイル読んじゃうぞー」となった時点でやるべきことは明らかだし,何か特別難しいアルゴリズムとかが必要な話でもないので,解説に値する事柄が乏しい題材なんじゃないかな.
(Stateパターンの話で例としてCSV読込を取り上げているものは見かけたことはある)
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#14の言い回しは,あれっすよ.TV番組ネタ. そもそもプログラマは教育者じゃないし,ましてボランティアで教育活動をすること求められる筋合いは無いんじゃないかなぁ. (何か,東京オリンピック的な考えですね.) まぁそれはそれとして…… 苦言的な(?)ことを言えば, ステップ実行という調査手段が得られたなら 「TextOutの出力結果を見て異常だったら,真っ先にTextOut時点でのデータの中身をチェックするっしょ」 というのは,なんというか,一般に期待される事柄だとは思うのですよね. (そして,当然ながら,中身がおかしいならばその原因追及を行うことも) 要するに, > 変数の値の変化を丁寧に見...
by usao
1週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 966

Re: Win32のCSV読み取りで文字化けする理由が分かりません

職場で笑っちゃったじゃないですか…
by usao
2週間前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 363

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

奇遇ですね.私もです.

この様子だと,素人解釈は邪魔でしょうし,
計算グラフなるものを使う分野の専門家が現れるのを待つしかないですね.
by usao
2週間前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 363

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

たしかに「計算グラフ」でググるとそれっぽい情報は見つかるが,
ここであなたが求めている
> 『計算グラフ』的なコーディングの仕方
っていうのは,一体どういうものを想定しているのか,何かもうちょっと具体性を持った事柄を言えないのですか?

例えば,各々の演算子を全てstd::unary_functionやstd::binary_functionのようなファンクタで実装したならば
> 『計算グラフ』的
なる事柄の要件を満たすのですか?

コード:

std::cout << cos(x)*y + log(y) * x
と素直に実装したならば,これは
> 非『計算グラフ』的
に該当するのですか?
by usao
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 関数に配列のアドレスを渡すという考え
返信数: 13
閲覧数: 473

Re: 関数に配列のアドレスを渡すという考え

後半の方は何をおっしゃっておられるのかよくわかりませんが… void func(int arg[]){ ... } は void func( int *arg ){ ... } と同じ. 関数func内の arg[0] = 10; は *( arg + 0 ) = 10; と同じ. func( a ); なる呼び出しは, func( &( a[0] ) ); と同じ. 纏めると, void func( int *arg ) { *( arg + 0 ) = 10; } int main() { int a[] = { 0,1,2,3,4 }; func( &( a[0] ) ); } といった...
by usao
4週間前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのTextOutで変数を表示する方法が分かりません
返信数: 13
閲覧数: 496

Re: Win32APIのTextOutで変数を表示する方法が分かりません

オフトピック
stringstreamとかじゃいかんのだろうか?
by usao
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい
返信数: 7
閲覧数: 443

Re: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい

オフトピック
暗号化してどうの…といっている時点で,少なくともユーザがデータを差し替えすることは考慮していないだろうし,
そのデータを(配布時点においても)外部ファイルからの読込にしておく意味がどれだけあるのか?

…とか考えると,
CSVのような簡単な構造のデータであれば,
ソースコード化してしまうという手もあるような気がする.
(exeと切り離しておきたいならDLLにでもしてしまえば)
by usao
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体が意味をなしていない…
返信数: 7
閲覧数: 299

Re: 構造体が意味をなしていない…

あるファイルに(graph.hかな)に
ch_t って突然書いてみたら,
コンパイラに「ch_t ってのは何だよ? しらねーよ」と言われた,という感じですか.

> <struct.h>
というヘッダファイルを一体何のために書いたのか? どう使うつもりなのか?
というあたりを詳しく説明できませんか?

詳細検索ページへ移動する