いつもお世話になっております。迷彩吹雪です。
現在、全方位STGを作成しています。
今回は衝突判定についての質問です。
レーザーショットを作ろうと、以下のウェブページを参考に矩形と円の衝突判定プログラムを記述しました(添付ファイルの内容)。
「マルペケつくろーどっとコム」様
ttp://marupeke296.com/COL_2D_No5_PolygonToCircle.html
しかし、起動してみると以下の現象が発生しました。
・レーザーを撃った瞬間に自機が死ぬ
・発射できたとしても、その状態で移動・旋回すると突如自機が死ぬ
・レーザーに触れていないのに敵が死ぬことがある(または死なない)
処理を間違えているのだと思いますが、何度見返しても私にはどこが間違いなのかわかりません(数学は苦手です)。
どこがおかしいのか、ご指摘ください。
現象を確認できるプロジェクトファイルはこちらに用意しました。
http://www1.axfc.net/uploader/Sc/so/174805&key=test
pass:test
よろしくお願いします。
開発環境:VC++ DXライブラリ
使用言語:C++(そろそろ使用歴2年)
円と矩形の衝突判定
Re:円と矩形の衝突判定
とりあえず、51行目のGetY()が違っている感じがします。
float GetX(){return mX;}; //現在のX座標を返す
float GetY(){return mX;};
double GetR(){return mR;}; //半径を返す
float GetX(){return mX;}; //現在のX座標を返す
float GetY(){return mX;};
double GetR(){return mR;}; //半径を返す
Re:円と矩形の衝突判定
さかまきさん
返答が遅れて申し訳ありません。
ご指摘の通り返り値が間違っていました。
修正したところ期待通りの動作になりました。ありがとうございます。
返答が遅れて申し訳ありません。
ご指摘の通り返り値が間違っていました。
修正したところ期待通りの動作になりました。ありがとうございます。