敵機と自機の当たり判定

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

敵機と自機の当たり判定

#1

投稿記事 by 夢霧 » 18年前

こんにちは。
また教えてもらいたいことがあります。
敵機に当たり判定をつけることは出来たのですが、自機につけるのが上手くいきません。
私の作っているシューティングは、敵機から攻撃弾の発射されないタイプで、
敵機と自機が直接ぶつかる感じになります。
そして、自機は3回敵機にぶつかるとゲームオーバーという形にしたいのですが、
どうすればいいのでしょうか?
敵機に当たり判定をつけたようにしようとしているのですが、全く上手くいきません。

できれば、ソースサンプル等をいただけるとうれしいのですが、そこまで贅沢は言いません。
どうか、助けてください。

バグ

Re:敵機と自機の当たり判定

#2

投稿記事 by バグ » 18年前

自機の表示座標から逆算すればいいんではないでしょうか?

Justy

Re:敵機と自機の当たり判定

#3

投稿記事 by Justy » 18年前

 単純に自分と敵との距離を計ればいいのではないですか?
 距離が自分の半径よりも小さかったら接触、ってかんじで。


敵機に当たり判定をつけたようにしようとしているのですが、全く上手くいきません
 どういう方法でやろうとしてうまくいかなかったのでしょうか。

管理人

Re:敵機と自機の当たり判定

#4

投稿記事 by 管理人 » 18年前

お返事遅くなってごめんなさい。

えぇと、私が作るときは、


sqrt ( (敵のy座標-自分のy座標)^2 + (敵のx座標-自分のx座標)^2 )

が特定の範囲内になるなら当たったと判定します。

つまり三平方の定理ですね。

敵と自分の当たり判定範囲が両方四角形ならば、単純に

y座標の差が○以下 && x座標の差が△以下

で判定すればいいはずです。

しかし、あたったら、次に無敵である時間が必要です。

あたった直後も当たった状態なはずです。あたったと判定した0.01秒後もきっと当たった状態のはずでしょう。

ですから無敵状態にさせないと一瞬で何回も死んでしまいます。

一定の無敵時間を作りましょう。

3秒なら3秒たったら、機数を1減らして通常モードに戻します。

もっと具体的に処理内容を示してもらえたら詳しいアドバイスが出来るかもしれません。

夢霧

Re:敵機と自機の当たり判定

#5

投稿記事 by 夢霧 » 18年前

皆様のおかげでどうにかなりそうです。
また分からなくなったら来ます。
ありがとうございました!

閉鎖

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