碰撞,位置被重置

时间:2012-11-05 16:16:12

标签: c# xna collision

我的碰撞遇到了一些问题,在最终弄清楚如何让它碰撞后我只能让pacman重置到一个固定位置而不知道如何让他留在他应该的地方

     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;
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

在移动播放器之前,请复制其位置。

如果它在移动后发生碰撞,请将其重新放置到最后位置。

此外,我认为值得注意的是,您不需要测试电路板的每个瓷砖,而只需测试播放器周围的瓷砖。玩家的位置应该为您提供哪个图块,并且应该很容易找到该图块旁边的图块。