さて、敵のクラス(回転、位置、テクスチャなど)があります。画面上に数体の敵をスポーンします。敵は動き回りますが、重なり合っています。そこで、同じクラスの敵同士の当たり判定をやってみました。しかし、どの方法を試しても、うまくいきません。私が試した最良のことは次のとおりです。
foreach (Enemy enemy1 in enemies)
{
enemy1Pos = new Vector2(enemy1.position.X, enemy1.position.Y)
foreach (Enemy enemy2 in enemies)
{
enemy2Pos = new Vector2(enemy2.position.X, enemy2.position.Y)
if (Vector2.Distance(enemy2Pos, enemy1Pos) < 200)
{
enemy1Pos += new Vector2((float)(enemy1.Speed * Math.Cos(enemy1.Rotation)), (float)(enemy1.Speed * Math.Sin(enemy1.Rotation)));
}
}
}
これは正確なコードではないため、間違いがある可能性があります。とにかく、このソリューションを実装したとき、敵が重なっていないので、その部分はすべて問題ありませんでした。しかし、それらは常に画面の右側に移動していました。
群れなども調べましたが、同じクラスの2つのオブジェクト間の衝突をどのように検出できますか?