1

我的碰撞有点问题,在终于弄清楚如何让它碰撞之后,我只能让 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;
                    }
                }
            }
        }
4

1 回答 1

0

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

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

另外,我认为值得注意的是,您不需要测试棋盘上的每个图块,而只需要测试玩家周围的图块。玩家的位置应该让您知道它在哪个图块上,并且应该很容易找到与该图块相邻的图块。

于 2012-11-05T16:18:40.123 回答