的colision是工作,但它的一些錯誤,因爲玩家theese線只是站在仍處於起始位置X10 Y10我的球員碰撞無法正常工作
for (int i = 0; i < sprites.Length; i++)
{
if (player.Top > sprites[i].Top && player.Bottom < sprites[i].Top) //Checking for intersection at the top of the player
{
player_Collision1 = true; //Found collision
}
else if (player.Bottom > sprites[i].Top && player.Bottom < sprites[i].Bottom) //Checking for intersection at the bottom of the player
{
player_Collision2 = true; //Found collision
}
else if (player.Left > sprites[i].Right && player.Left < sprites[i].Left) //Checking for intersection at the left of the player
{
player_Collision3 = true; //Found collision
}
else if (player.Right > sprites[i].Left && player.Right < sprites[i].Right)//Checking for intersection at the right of the player
{
player_Collision4 = true; //Found collision
}
}
林使用XNA的矩形和球員的名字一個矩形和精靈是玩家可以碰撞的所有矩形陣列,XNA矩形可以讓你獲得矩形兩側的座標,就像你所說的那樣:player.Top player.Bottom等等。
你知道XNA有一個內置的`Intersects`方法嗎?如果您定義了兩個矩形,則可以使用它來查看它們是否重疊。 http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersects.aspx – 2011-12-16 17:03:22
我需要不同的碰撞發生取決於雙方.. – Rakso 2011-12-16 17:04:16