Пример #1
0
 public void movePlayer(int direction, Player player, ZoneFactory zoneFactory)
 {
     if (direction == 0)
     {
         upFlag = true;
         player.moveUp(checkCollision(player.getMoveSpeed(), direction, player, zoneFactory.getCurrentZone()));
     }
     else if (direction == 1)
     {
         downFlag = true;
         player.moveDown(checkCollision(player.getMoveSpeed(), direction, player, zoneFactory.getCurrentZone()));
     }
     else if (direction == 2)
     {
         rightFlag = true;
         player.moveRight(checkCollision(player.getMoveSpeed(), direction, player, zoneFactory.getCurrentZone()));
     }
     else if (direction == 3)
     {
         leftFlag = true;
         player.moveLeft(checkCollision(player.getMoveSpeed(), direction, player, zoneFactory.getCurrentZone()));
     }
     updateDrawLocations(player, zoneFactory.getCurrentZone());
     transitionHandler.checkTransitions(player, zoneFactory);
 }
Пример #2
0
        private int isTransition(Player player, Zone currentZone)
        {
            Vector2 location = player.getGlobalLocation();

            for (int i = 0; i < player.getSize().X; i++)
            {
                for (int j = 0; j < player.getMoveSpeed(); j++)
                {
                    int xPos = ((int)location.X + i) / 30;
                    int yPos = ((int)location.Y + j) / 30;
                    int xOff = ((int)location.X + i) % 30;
                    int yOff = ((int)location.Y + j) % 30;

                    int transNum = currentZone.getZoneTileMap().getTile(yPos, xPos, player.getCurrentZoneLevel()).checkPixel(yOff, xOff);

                    if (transNum > 1)
                    {
                        //Console.WriteLine("xPos: " + xPos + " yPos: " + yPos);
                        return transNum;
                    }

                }
            }

            for (int i = 0; i < (player.getSize().Y - player.getMoveSpeed()); i++)
            {
                for (int j = 0; j < player.getMoveSpeed(); j++)
                {
                    int xPos = ((int)location.X + j) / 30;
                    int yPos = ((int)location.Y + i + player.getMoveSpeed()) / 30;
                    int xOff = ((int)location.X + j) % 30;
                    int yOff = ((int)location.Y + i + player.getMoveSpeed()) % 30;

                    int transNum = currentZone.getZoneTileMap().getTile(yPos, xPos, player.getCurrentZoneLevel()).checkPixel(yOff, xOff);

                    if (transNum > 1)
                    {
                        Console.WriteLine(player.getGlobalLocation());
                        Console.WriteLine("xPos: " + xPos + " yPos: " + yPos);
                        Console.WriteLine("xOff: " + xOff + " yOff: " + yOff);
                        Console.WriteLine(i);
                        return transNum;
                    }
                }
            }

            for (int i = 0; i < player.getSize().Y - player.getMoveSpeed(); i++)
            {
                for (int j = 0; j < player.getMoveSpeed(); j++)
                {
                    int xPos = ((int)location.X + (int)player.getSize().X - player.getMoveSpeed() + j) / 30;
                    int yPos = ((int)location.Y + i + player.getMoveSpeed()) / 30;
                    int xOff = ((int)location.X + (int)player.getSize().X - player.getMoveSpeed() + j) % 30;
                    int yOff = ((int)location.Y + i + player.getMoveSpeed()) % 30;

                    int transNum = currentZone.getZoneTileMap().getTile(yPos, xPos, player.getCurrentZoneLevel()).checkPixel(yOff, xOff);

                    if (transNum > 1)
                    {
                        //Console.WriteLine("xPos: " + xPos + " yPos: " + yPos);
                        return transNum;
                    }
                }
            }

            for (int i = 0; i < player.getSize().X - player.getMoveSpeed() - player.getMoveSpeed(); i++)
            {
                for (int j = 0; j < player.getMoveSpeed(); j++)
                {
                    int xPos = ((int)location.X + player.getMoveSpeed() + i) / 30;
                    int yPos = ((int)location.Y + (int)player.getSize().Y - player.getMoveSpeed() + j) / 30;
                    int xOff = ((int)location.X + player.getMoveSpeed() + i) % 30;
                    int yOff = ((int)location.Y + (int)player.getSize().Y - player.getMoveSpeed() + j) % 30;

                    int transNum = currentZone.getZoneTileMap().getTile(yPos, xPos, player.getCurrentZoneLevel()).checkPixel(yOff, xOff);

                    if (transNum > 1)
                    {
                        //Console.WriteLine("xPos: " + xPos + " yPos: " + yPos);
                        return transNum;
                    }
                }
            }

            return 0;
        }