1

私は現在ゆるい鳥を作っていて、ただの長方形から自分のイメージなどに変更しました。どうすればいいのかわからないので、鳥(不規則な形)が長方形にぶつかると死んでしまいます。奇妙な形状の衝突をコーディングする方法がわかりません。これが画像です。こんな鳥を描いています。

var img = document.getElementById("bird");
brush.drawImage(img, 20, this.y);

ゲーム、鳥、コードの写真が添付されています。

ゲームの写真

ゲームの写真

4

2 に答える 2

0

コライダーを実装する必要があります。Unity などのゲームエンジンですぐに使用できますが、これを自分で実装したい場合は、次のことを考慮してください。

  1. 鳥と壁のコライダー コンポーネントを作成します。コライダーは単純化された形状で、CPU 速度に関して衝突検出アルゴリズムをより簡単かつ高速にします。たとえば、鳥の場合は周囲を円で囲み、壁を長方形にすることができます。
  2. Update frame イベント中に、鳥の境界円が壁の長方形と交差するかどうかを確認します。これは簡単な数学です。Google で「円と四角形の交点」の公式を見つけることができます。
  3. 衝突が検出された場合 - あなたの鳥は衝突するはずです)

それでおしまい!

于 2016-01-05T09:59:55.850 に答える
0

この件に関する優れた本は次のとおりです。 Thomas Schwarzl による 2D Game Collision Detection: An Introduction to clashing geometry in games

たとえば、ここで見つけることができます http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision

長方形の衝突を処理できる場合は、複雑な図形の形状を長方形で埋めて、それぞれをテストしてみてください。あなたの場合、鳥に円を使用してみてください。

于 2015-12-01T01:22:43.510 に答える