C# 碰撞,位置被重置
我的碰撞有点问题,在最终弄清楚如何使它真正碰撞后,我只能让吃豆人复位到一个设定的位置,而不知道如何让他呆在他应该呆的地方C# 碰撞,位置被重置,c#,xna,collision,C#,Xna,Collision,我的碰撞有点问题,在最终弄清楚如何使它真正碰撞后,我只能让吃豆人复位到一个设定的位置,而不知道如何让他呆在他应该呆的地方 player.update(); for (int y = 0; y < NrOfTilesY; y++) { for (int x = 0; x < NrOfTilesX; x++) { if (tileArray[x, y] is Ne
player.update();
for (int y = 0; y < NrOfTilesY; y++)
{
for (int x = 0; x < NrOfTilesX; x++)
{
if (tileArray[x, y] is Nest)
{
Rectangle rectW = tileArray[x, y].Bounds();
Rectangle rectP = Player.pacmanBounds;
if(rectW.Intersects(rectP))
{
Player.pacmanBounds.X = 32;
Player.pacmanBounds.Y = 32;
}
}
}
}
player.update();
对于(int y=0;y
移动播放机之前,请复制其位置
如果在移动后发生碰撞,请将其重新放置到最后一个位置
另外,我认为值得注意的是,您不需要测试板上的每个瓷砖,只需要测试播放器周围的瓷砖。玩家的位置应该告诉你它在哪个磁贴上,并且应该很容易找到与该磁贴相邻的磁贴。对不起,我对这个很陌生,我的玩家不是数组的一部分,如何检查位置=?玩家有位置,对吗?阵列中的每个磁贴也有一个?以一种简单的方式,玩家的X和Y可以很容易地在你的tiles.player.pacmanBounds.X的X和Y索引中转换。没关系,我在吃午饭的时候重新阅读了你的答案,它击中了我,很有效,谢谢。