私は、継続的な垂直方向のプレイヤーの動きと水平方向の入力のみを備えたブレイクアウト スタイルのゲームを構築しようとしています。レンガが側面または上部/下部にぶつかったかどうかを検出する必要があります。それを検出しないと、プレイヤーの動きが破壊されていないブロックに重なるのを止めることができませんでした。これを使用して、プレーヤー エンティティがヒットしているポリゴンのエッジを検出しようとしました (衝突が検出されたときに最初の関数を呼び出し、justHit
false に設定されているときに 2 番目の関数を呼び出します)。
.onHit("brick", function() {
if (data[0]['normal']['y']==0) {
reverseDirection();
}
else {
this._hspeed = 0;
}
}, function() {
this._hspeed = 3;
})
しかし、2 つの問題が発生しています。プレイヤー エンティティがレンガの角に到達すると、「y」データヒット値が変化し、2 つのレンガが並んでいる場合、何らかの理由でレンガ コンポーネントがほとんど無視されます。
- 私はjsFiddleにいくつかのコードを削除しました
- hitdata 条件付きの現在の検出の例をここで見ることができます
- そして、レンガの端に衝突したときに動きが制限されない元の衝突バグの例