更新:キャンバスのピクセルごとの衝突検出について説明しているこの非常に役立つ記事を見つけました。
HTML5キャンバスを使用したJavaScriptゲームの衝突システムに取り組んでいます。各オブジェクトにはスプライトとしての画像があり、あるオブジェクトの不透明なピクセルが別のオブジェクトと重なると、衝突コードがトリガーされます。しかし、何よりもまず、オブジェクトが互いに接触し、衝突を引き起こさないように、オブジェクトを移動する必要があります。1つをそれに応じて移動するには、xとyに関して任意の2つのオブジェクトのオーバーラップを計算するのに助けが必要です。これが私たちが知っていることです:
- 各オブジェクトを基準にした衝突点の座標
- オブジェクトの位置(したがって、オブジェクト間の距離)
- オブジェクトの幅と高さ
- x方向とy方向のオブジェクトの速度(ベクトル)
別の注意:これらのオブジェクトの画像は不均一な形状であり、完全な円はありませんが、中心から衝突点までの半径は計算できます。
編集:私は多くの応答を見ていませんので、より具体的にします。下の画像では、2つのオブジェクトが衝突しています。オーバーラップ領域は赤で表示されます。緑の線の長さをどのように見つけますか?