円と矩形の衝突判定

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

円と矩形の衝突判定

#1

投稿記事 by 迷彩吹雪 » 14年前

いつもお世話になっております。迷彩吹雪です。
現在、全方位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:円と矩形の衝突判定

#2

投稿記事 by さかまき » 14年前

とりあえず、51行目のGetY()が違っている感じがします。

float GetX(){return mX;}; //現在のX座標を返す
float GetY(){return mX;};
double GetR(){return mR;}; //半径を返す

迷彩吹雪

Re:円と矩形の衝突判定

#3

投稿記事 by 迷彩吹雪 » 14年前

さかまきさん

返答が遅れて申し訳ありません。
ご指摘の通り返り値が間違っていました。
修正したところ期待通りの動作になりました。ありがとうございます。

迷彩吹雪

Re:円と矩形の衝突判定

#4

投稿記事 by 迷彩吹雪 » 14年前

解決を押し忘れました。

閉鎖

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