4

私は最近、弾丸の発射に関する質問を投稿しましたが、(もちろん助けを借りて)なんとか理解しました。私は今、新しい問題を抱えています。弾丸と敵の間の衝突検出を理解できません。一度にすべてのコードを投稿したくないので、リクエストに応じて投稿するコードのクラスのリストを次に示します。

  • cButton (これは単なる「再生」ボタンであり、ヘルプは必要ありません)。
  • 弾丸
  • ゲーム1

PS これは私の 2 回目の投稿にすぎません。気楽にやってください ;) 注:プレイヤーは左右に移動するだけで、敵は直線上を上から下に移動します (それが役立つ場合)。

4

2 に答える 2

2

これは、私が以前に使用した非常に簡単な方法です。箇条書きの周りに長方形を設定します。

Rectangle bulletRect = new Rectangle(bulletPosition.X, bulletPosition.Y, bulletText.Width, bulletText.Height);

敵についても同じ:

Rectangle enemyRect = new Rectangle(enemyPosition.X, enemyPosition.Y, enemyText.Width, enemyText.Height);

次に、衝突をテストするときに使用できます。

if(bulletRect.Intersects(enemyRect))
{
   //We have a collision
}
于 2012-07-23T14:31:57.620 に答える
0

船が現在占有しているブロックに弾丸が入ったかどうかを確認し、そうであればそれを破壊して弾丸を取り除く必要があると思います. 関連するコードを投稿すると、おそらく役立つでしょう。:)

于 2012-07-23T14:31:00.107 に答える