我正在研究 XNA 中的碰撞。出于某种原因,尽管我尝试了很多次,但它不起作用。如果我触摸它,它将起作用。但有时它会随机停止运行,就好像发生了碰撞一样。它的工作方式是有五十个 20 像素 x 20 像素的正方形。如果你的方格以任何方式触及另一个方格,那么游戏就结束了。
checkcollision()
{
for (int i = 0; i < 50; i++)
{
if ((loc.X + me.Width > enemyloc[i].X) && (loc.Y + me.Height > enemyloc[i].Y) && (loc.Y < enemyloc[i].Y) && (loc.X < enemyloc[i].X)) { return true; }
if ((loc.X > enemyloc[i].X) && (enemyloc[i].X + enemy[i].Width > loc.X) && (loc.Y + me.Height > enemyloc[i].Y) && (loc.Y < enemyloc[i].Y)) { return true; }
if ((loc.X > enemyloc[i].X) && (loc.X < enemyloc[i].X + enemy[i].Width) && (loc.Y > enemyloc[i].Y) && (loc.Y < enemyloc[i].Y + enemy[i].Height)) { return true; }
if ((loc.X < enemyloc[i].X) && (loc.X + me.Width > enemyloc[i].X) && (loc.Y < enemyloc[i].Y) && (loc.Y < enemyloc[i].Y + enemy[i].Height)) { return true; }
}
return false;
}