コード例 #1
0
        private bool CanMove(MoveDirection direction, TileMap tileMap, float x, float y, bool TestNextDir = false)
        {
            switch (direction)
            {
            case MoveDirection.Up:
                if (tileMap.ReturnTile((int)(y / 16f), (int)(x / 16f)) == Tile.Wall)
                {
                    return(false);
                }
                break;

            case MoveDirection.Down:
                if (tileMap.ReturnTile((int)((y / 16f) + 1), (int)(x / 16f)) == Tile.Wall)
                {
                    return(false);
                }
                break;

            case MoveDirection.Left:
                if (tileMap.ReturnTile((int)(y / 16f), (int)((x / 16f))) == Tile.Wall)
                {
                    return(false);
                }
                break;

            case MoveDirection.Right:
                if (tileMap.ReturnTile((int)(y / 16f), (int)((x / 16f) + 1)) == Tile.Wall)
                {
                    return(false);
                }
                break;
            }
            return(true);
        }
コード例 #2
0
 private void CheckCoinsContact(TileMap tileMap, MoveDirection moveDirection)
 {
     if (InTile())
     {
         if (tileMap.ReturnTile((int)(point2F.y / 16f), (int)(point2F.x / 16f)) == Tile.Coin)
         {
             CoinContact(this, 10);
             tileMap.ChangeTileToNone((int)(point2F.y / 16f), (int)(point2F.x / 16f));
             tileMap.Coins--;
         }
         if (tileMap.ReturnTile((int)(point2F.y / 16f), (int)(point2F.x / 16f)) == Tile.Energizer)
         {
             CoinContact(this, 50);
             tileMap.ChangeTileToNone((int)(point2F.y / 16f), (int)(point2F.x / 16f));
             tileMap.Coins--;
         }
     }
 }
コード例 #3
0
        private void CreateWaveMap(TileMap tileMap)
        {
            waveMap = new int [31, 29];
            pathMap = new int[31, 29];

            for (int i = 0; i < 31; i++)
            {
                for (int j = 0; j < 28; j++)
                {
                    if (tileMap.ReturnTile(i, j) == Tile.Wall)
                    {
                        waveMap[i, j] = -1; pathMap[i, j] = -1;
                    }
                    if (tileMap.ReturnTile(i, j) != Tile.Wall)
                    {
                        waveMap[i, j] = 0; pathMap[i, j] = 0;
                    }
                }
            }
        }
コード例 #4
0
        private void RandomNextAim(TileMap tileMap)
        {
            Random random = new Random();
            bool   getpos = false;

            do
            {
                int i = random.Next(1, 29);
                int j = random.Next(1, 26);

                if (tileMap.ReturnTile(i, j) == Tile.None)
                {
                    getpos = true;
                    aimI   = i;
                    aimJ   = j;
                }
            }while (!getpos);
        }