トップページ > 過去ログ > 記事閲覧
線分とモデルの衝突判定の配列版について
名前:トム 日時: 2010/06/15 22:28

いつもお世話になっています。衝突判定の関数追加の要望です。 MV1CollCheck_Line()関数は、線分とモデルが複数点で衝突していても、その内の1点しか情報を返してくれません。 MV1CollCheck_Capsule()関数のように、配列に衝突結果を返してくれるような関数を用意できないでしょうか? 今は、MV1CollCheck_Capsule()関数で衝突判定した後、 カプセルとモデルが衝突したポリゴン全てとラインをMV1CollCheck_Line()関数を使って衝突判定しています。 専用関数があれば、もっと軽い処理で同様の事が実現できるように思います。 その際、衝突した全てのMV1_COLL_RESULT_POLY構造体のHitPositionに、線分とポリゴンの衝突位置を入れてほしいです。 プレイヤーの真下の地面の位置などを求めるのに便利だと思います。 非公開関数の組み合わせで、効率的な方法があれば、それでもかまいません。 検討していただけないでしょうか? 宜しくお願いします。

Page: 1 |

Re: 線分とモデルの衝突判定の配列版について ( No.1 )
名前:管理人 日時:2010/06/21 01:07

確かに MV1CollCheck_Line は結局中で線分の付近にある全てのポリゴンと当たり判定をしているので、 元々接触している全てのポリゴンを検出したい場合には MV1CollCheck_Line は不便ですね・・・ というわけで、MV1CollCheck_LineDim という戻り値の形式が MV1CollCheck_Capsule 等と同じ MV1_COLL_RESULT_POLY_DIM 型の線分とモデルの当たり判定チェック用関数を追加しました よろしければこちらをダウンロードしてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 追加した関数はこちらです // 線とモデルの当たり判定( 戻り値が MV1_COLL_RESULT_POLY_DIM ) MV1_COLL_RESULT_POLY_DIM MV1CollCheck_LineDim( int MHandle, int FrameIndex, VECTOR PosStart, VECTOR PosEnd ) ; MV1CollCheck_Line の戻り値が MV1_COLL_RESULT_POLY_DIM になっただけの関数です 戻り値を使い終わったら MV1CollResultPolyDimTerminate で後始末することと、MV1CollCheck_Line と違い PosStart に一番近い接触点が配列の0番に入っている訳ではないということにご注意下さい
Re: 線分とモデルの衝突判定の配列版について ( No.2 )
名前:トム(解決) 日時:2010/06/24 22:44

>よろしければこちらをダウンロードしてください m(_ _)m 管理人さん、いつもお世話になっております。 関数の追加どうも有難うございます。 問題なく動作する事を確認しました。

Page: 1 |