1

私は、継続的な垂直方向のプレイヤーの動きと水平方向の入力のみを備えたブレイクアウト スタイルのゲームを構築しようとしています。レンガが側面または上部/下部にぶつかったかどうかを検出する必要があります。それを検出しないと、プレイヤーの動きが破壊されていないブロックに重なるのを止めることができませんでした。これを使用して、プレーヤー エンティティがヒットしているポリゴンのエッジを検出しようとしました (衝突が検出されたときに最初の関数を呼び出し、justHitfalse に設定されているときに 2 番目の関数を呼び出します)。

.onHit("brick", function() { 
    if (data[0]['normal']['y']==0) { 
        reverseDirection(); 
    } 
    else { 
        this._hspeed = 0; 
    } 
}, function() { 
    this._hspeed = 3; 
}) 

しかし、2 つの問題が発生しています。プレイヤー エンティティがレンガの角に到達すると、「y」データヒット値が変化し、2 つのレンガが並んでいる場合、何らかの理由でレンガ コンポーネントがほとんど無視されます。

4

1 に答える 1

0

エンティティに複数のヒットボックスを描画し、衝突をトリガーするボックスに応じて特定のアクションを実行できます。

于 2013-09-22T19:58:02.830 に答える