mirror of
				https://github.com/Klagarge/PokeHES.git
				synced 2025-11-04 05:09:18 +00:00 
			
		
		
		
	some maps and fix turn, display and new sprite
This commit is contained in:
		@@ -137,10 +137,10 @@ public abstract class Character extends Entity{
 | 
			
		||||
                textureY = 2;
 | 
			
		||||
                break;
 | 
			
		||||
            case LEFT:
 | 
			
		||||
                textureY = 1;
 | 
			
		||||
                textureY = 3;
 | 
			
		||||
                break;
 | 
			
		||||
            case UP:
 | 
			
		||||
                textureY = 3;
 | 
			
		||||
                textureY = 1;
 | 
			
		||||
                break;
 | 
			
		||||
            case DOWN:
 | 
			
		||||
                textureY = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ public class Player extends Character{
 | 
			
		||||
	public boolean onEnemy = false;
 | 
			
		||||
 | 
			
		||||
    public Player(int x, int y, String map) {
 | 
			
		||||
        super("Player", x, y, "Character", map);
 | 
			
		||||
        super("Player", x, y, "Character_flipped", map);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addXp(int xp){
 | 
			
		||||
@@ -26,6 +26,8 @@ public class Player extends Character{
 | 
			
		||||
 | 
			
		||||
    public void manageEntity(ScreenMap sm, Controller c) {
 | 
			
		||||
 | 
			
		||||
		boolean onDoor = sm.isDoor(getPosition());
 | 
			
		||||
 | 
			
		||||
		// Do nothing if hero is already moving
 | 
			
		||||
		if (!isMoving()) {
 | 
			
		||||
 | 
			
		||||
@@ -34,19 +36,21 @@ public class Player extends Character{
 | 
			
		||||
			Player.Direction goalDirection = Player.Direction.NULL;
 | 
			
		||||
			Vector2 nextPos = new Vector2(position);
 | 
			
		||||
 | 
			
		||||
			if (c.keyStatus.get(Input.Keys.RIGHT)) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			if (c.keyStatus.get(Input.Keys.RIGHT) && !onDoor) {
 | 
			
		||||
				goalDirection = Player.Direction.RIGHT;
 | 
			
		||||
				nextCell = sm.getTile(getPosition(), 1, 0);
 | 
			
		||||
				nextPos.x+=sm.tileWidth;
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.LEFT)) {
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.LEFT) && !onDoor) {
 | 
			
		||||
				goalDirection = Player.Direction.LEFT;
 | 
			
		||||
				nextCell = sm.getTile(getPosition(), -1, 0);
 | 
			
		||||
				nextPos.x-=sm.tileWidth;
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.UP)) {
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.UP) && !onDoor) {
 | 
			
		||||
				goalDirection = Player.Direction.UP;
 | 
			
		||||
				nextCell = sm.getTile(getPosition(), 0, 1);
 | 
			
		||||
				nextPos.y+=sm.tileHeight;
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.DOWN)) {
 | 
			
		||||
			} else if (c.keyStatus.get(Input.Keys.DOWN) && !onDoor) {
 | 
			
		||||
				goalDirection = Player.Direction.DOWN;
 | 
			
		||||
				nextCell = sm.getTile(getPosition(), 0, -1);
 | 
			
		||||
				nextPos.y-=sm.tileHeight;
 | 
			
		||||
@@ -59,7 +63,7 @@ public class Player extends Character{
 | 
			
		||||
					turn(goalDirection);
 | 
			
		||||
					System.out.println("It's a enemy !!");
 | 
			
		||||
				} else {
 | 
			
		||||
					setSpeed(sm.getSpeed(nextCell));
 | 
			
		||||
					setSpeed(sm.getSpeed(nextCell)*3); //TODO remove x3
 | 
			
		||||
					go(goalDirection);
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -68,7 +72,7 @@ public class Player extends Character{
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			
 | 
			
		||||
			if(sm.isDoor(getPosition())){
 | 
			
		||||
			if(onDoor){
 | 
			
		||||
				String nMap = null;
 | 
			
		||||
				Integer x = null;
 | 
			
		||||
				Integer y = null;
 | 
			
		||||
@@ -77,12 +81,32 @@ public class Player extends Character{
 | 
			
		||||
					x = ScreenMap.Door.nextX;
 | 
			
		||||
					y = ScreenMap.Door.nextY;
 | 
			
		||||
					goalDirection = ScreenMap.Door.nextDirection;
 | 
			
		||||
					/*
 | 
			
		||||
					if (ScreenMap.Door.changeDirection) {
 | 
			
		||||
						switch (goalDirection) {
 | 
			
		||||
							case UP:
 | 
			
		||||
								goalDirection = Direction.DOWN;
 | 
			
		||||
								System.out.println("go down");
 | 
			
		||||
								break;
 | 
			
		||||
 | 
			
		||||
							case DOWN:
 | 
			
		||||
								goalDirection = Direction.UP;
 | 
			
		||||
								System.out.println("go up");
 | 
			
		||||
						
 | 
			
		||||
							default:
 | 
			
		||||
								goalDirection = Direction.NULL;
 | 
			
		||||
								break;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					*/
 | 
			
		||||
				} catch (Exception e) { }
 | 
			
		||||
				ScreenMap.Door.reset();
 | 
			
		||||
				if (nMap == null || x == null || y == null) return;
 | 
			
		||||
				map = nMap;
 | 
			
		||||
				setPosition(x*sm.tileWidth, y*sm.tileHeight);
 | 
			
		||||
				System.out.println("Go to: " + sm.map + " in " + x + " x " + y);
 | 
			
		||||
				System.out.println(goalDirection);
 | 
			
		||||
				turn(goalDirection);
 | 
			
		||||
				System.out.println("Go to: " + map + " in " + x + " x " + y);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,8 @@ public class PokeMudry extends PortableApplication {
 | 
			
		||||
        // add player, create and add all enemies in entities
 | 
			
		||||
		entities.add((Entity) sp.p);
 | 
			
		||||
		enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert", 25, "informatique"));
 | 
			
		||||
		//enemies.add(new Enemy("Pignat", 5, 1, "lumberjack_sheet32", "test", 150));
 | 
			
		||||
		enemies.add(new Enemy("Mudry", 5, 11, "lumberjack_sheet32", "21N304", 25, "informatique"));
 | 
			
		||||
		
 | 
			
		||||
        for (Enemy enemy : enemies) { entities.add(enemy); }
 | 
			
		||||
 | 
			
		||||
		//Init all entities
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ import com.badlogic.gdx.maps.tiled.TmxMapLoader;
 | 
			
		||||
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
 | 
			
		||||
import com.badlogic.gdx.math.Vector2;
 | 
			
		||||
 | 
			
		||||
import Entity.Character;
 | 
			
		||||
import Entity.Player;
 | 
			
		||||
import ch.hevs.gdx2d.components.screen_management.RenderingScreen;
 | 
			
		||||
import ch.hevs.gdx2d.lib.GdxGraphics;
 | 
			
		||||
@@ -52,15 +53,28 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
		createMap("test");
 | 
			
		||||
		createMap("test_couloir");
 | 
			
		||||
		createMap("desert");
 | 
			
		||||
 | 
			
		||||
        createMap("SS");
 | 
			
		||||
        //createMap("RI");
 | 
			
		||||
        //createMap("RS");
 | 
			
		||||
        
 | 
			
		||||
        createMap("21RI");
 | 
			
		||||
        createMap("21RS");
 | 
			
		||||
        createMap("21N2");
 | 
			
		||||
        createMap("21N3");
 | 
			
		||||
        
 | 
			
		||||
        createMap("21N205");
 | 
			
		||||
        createMap("21N304");
 | 
			
		||||
        createMap("21N307");
 | 
			
		||||
        createMap("21N308");
 | 
			
		||||
 | 
			
		||||
        //createMap("23RI");
 | 
			
		||||
        //createMap("23RS");
 | 
			
		||||
        createMap("23N1");
 | 
			
		||||
        //createMap("23N2");
 | 
			
		||||
        
 | 
			
		||||
        //createMap("23N20");
 | 
			
		||||
        //createMap("23N215");
 | 
			
		||||
        
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -69,11 +83,15 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
        
 | 
			
		||||
        tiledLayer.clear();
 | 
			
		||||
        
 | 
			
		||||
        // Get actual map of the player
 | 
			
		||||
        try { map = player.getMap(); } catch (Exception e) {}
 | 
			
		||||
 | 
			
		||||
		for (int i = 0; i < 50; i++) {
 | 
			
		||||
		// Get all layers on the current map
 | 
			
		||||
        for (int i = 0; i < 50; i++) {
 | 
			
		||||
            try { tiledLayer.add((TiledMapTileLayer) tMap.get(map).getLayers().get(i)); } catch (Exception e) { }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Get heigh and width of tiles and the size of the tiles
 | 
			
		||||
        TiledMapTileLayer tl = tiledLayer.get(0);
 | 
			
		||||
        width = tl.getWidth();
 | 
			
		||||
        tileWidth = (int) tl.getTileWidth();
 | 
			
		||||
@@ -82,14 +100,15 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
        
 | 
			
		||||
        //System.out.println(width + " x " + height + " - " + tileWidth + " x " + tileHeight);
 | 
			
		||||
        
 | 
			
		||||
		try {
 | 
			
		||||
		// Get all doors on the current map
 | 
			
		||||
        try {
 | 
			
		||||
            doors = tMap.get(map).getLayers().get("door").getObjects();
 | 
			
		||||
		} catch (Exception e) {	doors = null; }
 | 
			
		||||
        
 | 
			
		||||
		
 | 
			
		||||
		// Render the tileMap
 | 
			
		||||
        //g.zoom(zoom);
 | 
			
		||||
        g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);
 | 
			
		||||
        g.zoom(zoom);
 | 
			
		||||
        g.moveCamera((int)player.getPosition().x, (int)player.getPosition().y, width * tileWidth, height * tileHeight);
 | 
			
		||||
 | 
			
		||||
		tMapRenderer.get(map).setView(g.getCamera());
 | 
			
		||||
		tMapRenderer.get(map).render();
 | 
			
		||||
@@ -116,10 +135,11 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
 | 
			
		||||
    public boolean isWalkable(Vector<TiledMapTile> tile) {
 | 
			
		||||
		if (tile == null) return false;
 | 
			
		||||
        boolean walkable = false;
 | 
			
		||||
		if (tile.size() == 0) return false;
 | 
			
		||||
        boolean walkable = true;
 | 
			
		||||
        for (TiledMapTile tiledMapTile : tile) {
 | 
			
		||||
            Object test = tiledMapTile.getProperties().get("walkable");
 | 
			
		||||
            walkable = Boolean.parseBoolean(test.toString()) ? true:walkable;
 | 
			
		||||
            walkable = Boolean.parseBoolean(test.toString()) ? walkable:false;
 | 
			
		||||
        }
 | 
			
		||||
        return walkable;
 | 
			
		||||
	}
 | 
			
		||||
@@ -160,7 +180,8 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
				try { Door.nextMap = mapProperties.get("nextMap").toString(); } catch (Exception e) { }
 | 
			
		||||
				try { Door.nextX = Integer.parseInt(mapProperties.get("nextX").toString()); } catch (Exception e) { }
 | 
			
		||||
				try { Door.nextY = Integer.parseInt(mapProperties.get("nextY").toString()); } catch (Exception e) { }
 | 
			
		||||
				try { Door.nextDirection = Door.nextDirection.valueOf(mapProperties.get("nextDirection").toString()); } catch (Exception e) { }
 | 
			
		||||
                try { Door.nextDirection = Character.Direction.valueOf(mapProperties.get("nextDirection").toString()); } catch (Exception e) { }
 | 
			
		||||
				try { Door.changeDirection = Boolean.parseBoolean(mapProperties.get("changeDirection").toString()); } catch (Exception e) { }
 | 
			
		||||
			}
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
@@ -171,13 +192,15 @@ public class ScreenMap extends RenderingScreen{
 | 
			
		||||
		public static String nextMap;
 | 
			
		||||
		public static Integer nextX;
 | 
			
		||||
		public static Integer nextY;
 | 
			
		||||
        public static Player.Direction nextDirection;
 | 
			
		||||
        public static Character.Direction nextDirection;
 | 
			
		||||
        public static Boolean changeDirection;
 | 
			
		||||
 | 
			
		||||
		public static void reset(){
 | 
			
		||||
			nextMap = null;
 | 
			
		||||
			nextX = null;
 | 
			
		||||
			nextY = null;
 | 
			
		||||
            nextDirection = null;
 | 
			
		||||
            changeDirection = null;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,10 +16,10 @@ public class ScreenPlayer {
 | 
			
		||||
    public void init(){
 | 
			
		||||
 | 
			
		||||
        // One player by ScreenPlayer
 | 
			
		||||
        p = new Player(8, 15, "desert");
 | 
			
		||||
      //p = new Player(4, 2, "21RI");
 | 
			
		||||
        //p = new Player(8, 15, "desert");
 | 
			
		||||
        p = new Player(4, 2, "21RI");
 | 
			
		||||
 | 
			
		||||
        b = new Battle(new Enemy("enemi", 0, 0, "charachter", "desert", 50, "enemi"));
 | 
			
		||||
        b = new Battle(new Enemy("enemi", 0, 0, "lumberjack_sheet32", "desert", 50, "enemi"));
 | 
			
		||||
 | 
			
		||||
        // Create both type of screen and record for reuse
 | 
			
		||||
        screenManager.registerScreen(ScreenMap.class);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user