1

衝突に少し問題があります。実際に衝突させる方法を最終的に理解した後、パックマンを設定された位置にリセットすることしかできず、彼を本来の位置にとどまらせる方法がわかりません。

     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 に答える