0
私は、回転していない矩形の2次元の衝突に取り組んでいます。私はそれを検出し、交差幅/高さ/位置を取得することができますが、私はそれを "キャンセル"することはできません。これは私が試してみました、「キャンセル」のコードです:Javascriptの矩形の衝突
if (this.bounds.intersects(player.bounds)) {
var intersection = this.bounds.intersection(player.bounds);
if (player.bounds.bottomRight().x > this.position().x)
player.position().subtract(intersection.width, 0);
else if (player.position().x > this.position().x)
player.position().add(intersection.width, 0);
else if (player.bounds.bottomRight().y > this.position().y)
player.position().subtract(0, intersection.height);
else if (player.position().y > this.position().y)
player.position().add(0, intersection.height);
}
(交差し、交差法が動作)
「これは」プレイヤーが交差することができないはずです壁です。 これは現在の効果です:
プレイヤーは赤い四角形で、壁は黒い四角形です。 これを修正するにはどうすればよいですか?
使用しているライブラリがわからない場合は、妥当な修正方法を提案することは困難です。新しい座標が有効であることを確認する前に、赤い四角形の座標を更新することを許可しているようです。 – zzzzBov
@zzzzBov私は自分自身を使用しています(これは主に楽しいものです) – MCMastery
イベントに基づいて、またはレンダリングループ(e.x.'setInterval'、 'requestAnimationFrame')に基づいて位置を更新していますか? – zzzzBov