1

学校のプロジェクトのためにカーン アカデミーでスペース インベーダー ゲームを書いていますが、弾丸とエイリアンを衝突させて、弾丸が衝突したエイリアンを取り除く方法がわかりません。これは非常に基本的な JS であり、私が試した限りでは、このトピックに関する他の回答を自分のコードに入れる方法がよくわかりません。誰かがこれについて私を助けることができれば、私はとても感謝しています.

ゲームへのリンクは次のとおりです: http://www.khanacademy.org/cs/space-invaders/1087897437

ここで同じ問題を抱えた別のゲームがあります: http://www.khanacademy.org/cs/brick/1176464164

4

1 に答える 1

0

どちらの場合も、ゲームは while ループで実行する必要があります。基本的に、各反復はゲームを 1 'フレーム' 進めます。あるフレームから次のフレームまで計算されることの 1 つは、弾丸がエイリアンに触れたかどうかです。

弾丸とエイリアンの両方が物理的な空間を占めています。したがって、すべての弾丸を効果的にループして、弾丸がエイリアンに当たったかどうかをチェックする関数を使用できます。

function has_hit_alien(bullet) {
  for(var i = aliens.size; i > 0; i--){
    if(same_space(bullet, aliens[i]) {
      return aliens[i]
    }
  }
}

ここで、same_space 関数を実装して、引数 1 の外側のピクセルのいずれかが引数 2 の内側にあるかどうかを確認する必要があります。

于 2012-11-28T16:11:38.223 に答える