MV1CollCheck_Sphereについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
リア

MV1CollCheck_Sphereについて

#1

投稿記事 by リア » 14年前

こんばんは。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関数で当たり判定の球の位置や大きさを確認しているので、キャラをポリゴンに当てているつもりで実は当たってなかった、なんてことはないと思います。
もしかして私が見落としている前処理等があるのでしょうか?
分かる方がおりましたら、ご指摘よろしくお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MV1CollCheck_Sphereについて

#2

投稿記事 by softya(ソフト屋) » 14年前

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

これでOKなら、次に自分のファイルを代わりに入れてみてください。
ご自分のファイルだけダメならデータに問題があることになります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

リア

Re: MV1CollCheck_Sphereについて

#3

投稿記事 by リア » 14年前

サンプルプログラムで試してみたところ、こちらで用意したステージ模型でも正常に反応しました。
そこでサンプルプログラムといろいろ見比べたところ、コリジョン設定の前にサイズ設定をしていないことが原因だと分かりました。

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

閉鎖

“C言語何でも質問掲示板” へ戻る