ページ 11

MV1CollCheck_Sphereについて

Posted: 2011年12月30日(金) 21:38
by リア
こんばんは。3Dゲームを作成中、詰まってしまったので質問させていただきます。

コード:

    StageHandle = MV1LoadModel( "dat/img/stage.mqo" );
	// モデル全体のコリジョン情報のセットアップ
	MV1SetupCollInfo( StageHandle, -1 );

コード:

    // プレイヤーの周囲にあるステージポリゴンを取得する
	// ( 検出する範囲は移動距離も考慮する )
	HitDim = MV1CollCheck_Sphere( StageHandle, -1, c.char_v, 20.0f + VSize(c.move_v));
	DrawFormatString(0,0,GetColor(255,255,255),"%d",HitDim.HitNum);
といった内容のコードを組んだのですが、キャラクターをいくら動かしてステージポリゴンに接触させてもHitNumが変化せず、これの下に書いてある衝突関数も作動しないんですよね…
DrawSphere3D関数で当たり判定の球の位置や大きさを確認しているので、キャラをポリゴンに当てているつもりで実は当たってなかった、なんてことはないと思います。
もしかして私が見落としている前処理等があるのでしょうか?
分かる方がおりましたら、ご指摘よろしくお願いいたします。

Re: MV1CollCheck_Sphereについて

Posted: 2011年12月31日(土) 01:35
by softya(ソフト屋)
こういう時はサンプルプログラムを動かしてみて確認するのが良いと思います。
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... .html#R9N5
データはDXLIBを解凍した時の「サンプルプログラム実行用フォルダ」に入っています。

これでOKなら、次に自分のファイルを代わりに入れてみてください。
ご自分のファイルだけダメならデータに問題があることになります。

Re: MV1CollCheck_Sphereについて

Posted: 2011年12月31日(土) 15:30
by リア
サンプルプログラムで試してみたところ、こちらで用意したステージ模型でも正常に反応しました。
そこでサンプルプログラムといろいろ見比べたところ、コリジョン設定の前にサイズ設定をしていないことが原因だと分かりました。

これからは質問する前に、サンプルプログラムを使って実行するようにします。
ご指摘ありがとうございました!