我正在研究XNA中的碰撞。有些原因,儘管我嘗試了很多次,但這並不奏效。如果我觸摸它,它會起作用。但有時候它會像發生碰撞一樣停止運行。它的工作方式是有五十個20像素×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;
}
嘗試。 –