mirror of
				https://github.com/Klagarge/PokeHES.git
				synced 2025-10-30 11:19:17 +00:00 
			
		
		
		
	
							
								
								
									
										26
									
								
								src/Control/Keyboard.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/Control/Keyboard.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | package Control; | ||||||
|  |  | ||||||
|  | import com.badlogic.gdx.Input; | ||||||
|  |  | ||||||
|  | import Screen.ScreenPlayer; | ||||||
|  |  | ||||||
|  | public class Keyboard { | ||||||
|  |     public void keyDown(int keycode, ScreenPlayer sp, Controller c) { | ||||||
|  |         switch (keycode) { | ||||||
|  |             case Input.Keys.Z: | ||||||
|  |                 if (sp.sm.zoom == 1.0) { | ||||||
|  |                     sp.sm.zoom = 0.5f; | ||||||
|  |                 } else { | ||||||
|  |                     sp.sm.zoom = 1; | ||||||
|  |                 } | ||||||
|  |                 return; | ||||||
|  |      | ||||||
|  |             default: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |         c.keyStatus.put(keycode, true); | ||||||
|  |     } | ||||||
|  |     public void onKeyUp(int keycode, ScreenPlayer sp, Controller c) { | ||||||
|  |         c.keyStatus.put(keycode, false); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -32,6 +32,14 @@ public abstract class Character extends Entity{ | |||||||
|  |  | ||||||
|     protected int pv; |     protected int pv; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Create a character on the world | ||||||
|  |      * @param name Name of the new character | ||||||
|  |      * @param x initial x position | ||||||
|  |      * @param y initial y position | ||||||
|  |      * @param img the name of the spritesheet for this character | ||||||
|  |      * @param map the initial map | ||||||
|  |      */ | ||||||
|     public Character(String name, int x, int y, String img, String map){ |     public Character(String name, int x, int y, String img, String map){ | ||||||
|         super(name, x, y, map); |         super(name, x, y, map); | ||||||
|         this.img = img; |         this.img = img; | ||||||
| @@ -87,7 +95,7 @@ public abstract class Character extends Entity{ | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @param speed The new speed of the hero. |      * @param speed The new speed of the character. | ||||||
|      */ |      */ | ||||||
|     public void setSpeed(float speed){ |     public void setSpeed(float speed){ | ||||||
|         this.speed = speed; |         this.speed = speed; | ||||||
|   | |||||||
| @@ -22,10 +22,23 @@ public abstract class Entity implements DrawableObject { | |||||||
|     protected boolean move = false; |     protected boolean move = false; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Create an entity | ||||||
|  |      * @param name The name of this new entity | ||||||
|  |      * @param x The initial x position | ||||||
|  |      * @param y The initial y position | ||||||
|  |      * @param map The initial map | ||||||
|  |      */ | ||||||
|     public Entity(String name, int x, int y, String map){ |     public Entity(String name, int x, int y, String map){ | ||||||
|         this(name, new Vector2(SPRITE_WIDTH * x, SPRITE_HEIGHT * y), map); |         this(name, new Vector2(SPRITE_WIDTH * x, SPRITE_HEIGHT * y), map); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Create an entity | ||||||
|  |      * @param name The name of this new entity | ||||||
|  |      * @param initialPosition The initial position by a Vector2 | ||||||
|  |      * @param map The initial map | ||||||
|  |      */ | ||||||
|     public Entity(String name, Vector2 initialPosition, String map){ |     public Entity(String name, Vector2 initialPosition, String map){ | ||||||
|         this.name = name; |         this.name = name; | ||||||
|         lastPosition = new Vector2(initialPosition); |         lastPosition = new Vector2(initialPosition); | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| package Entity; | package Entity; | ||||||
|  |  | ||||||
| import java.util.TreeMap; |  | ||||||
| import java.util.Vector; | import java.util.Vector; | ||||||
|  |  | ||||||
| import com.badlogic.gdx.Input; | import com.badlogic.gdx.Input; | ||||||
| @@ -57,7 +56,7 @@ public class Player extends Character{ | |||||||
| 			if (sm.isWalkable(nextCell)) { | 			if (sm.isWalkable(nextCell)) { | ||||||
| 				 | 				 | ||||||
| 				if (enemy(sm, nextPos)) { | 				if (enemy(sm, nextPos)) { | ||||||
| 					//turn(goalDirection); | 					turn(goalDirection); | ||||||
| 					System.out.println("It's a enemy !!"); | 					System.out.println("It's a enemy !!"); | ||||||
| 				} else { | 				} else { | ||||||
| 					setSpeed(sm.getSpeed(nextCell)); | 					setSpeed(sm.getSpeed(nextCell)); | ||||||
| @@ -95,7 +94,7 @@ public class Player extends Character{ | |||||||
| 			int pY = (int) nextPos.y/sm.tileHeight; | 			int pY = (int) nextPos.y/sm.tileHeight; | ||||||
| 			int eX = (int) enemy.position.x/sm.tileWidth; | 			int eX = (int) enemy.position.x/sm.tileWidth; | ||||||
| 			int eY = (int) enemy.position.y/sm.tileHeight; | 			int eY = (int) enemy.position.y/sm.tileHeight; | ||||||
| 			//System.out.println("Player: " + pX + " x " + pY + " - Enemy: " + eX + " x " + eY); | 			 | ||||||
| 			if(bMap && pX==eX && pY==eY) { | 			if(bMap && pX==eX && pY==eY) { | ||||||
| 				lastEnemy = enemy; | 				lastEnemy = enemy; | ||||||
| 				frontOfEnemy = true; | 				frontOfEnemy = true; | ||||||
|   | |||||||
| @@ -2,10 +2,7 @@ package Main; | |||||||
|  |  | ||||||
|  |  | ||||||
| import java.util.Vector; | import java.util.Vector; | ||||||
| import java.util.Map.Entry; |  | ||||||
|  |  | ||||||
| import com.badlogic.gdx.Input; | import com.badlogic.gdx.Input; | ||||||
|  |  | ||||||
| import Control.Controller; | import Control.Controller; | ||||||
| import Entity.Enemy; | import Entity.Enemy; | ||||||
| import Entity.Entity; | import Entity.Entity; | ||||||
| @@ -40,29 +37,34 @@ public class PokeMudry extends PortableApplication { | |||||||
|     public void onInit() { |     public void onInit() { | ||||||
|         sp.init(); |         sp.init(); | ||||||
|         controller.init(); |         controller.init(); | ||||||
|  |  | ||||||
|  |         // add player, create and add all enemies in entities | ||||||
| 		entities.add((Entity) sp.p); | 		entities.add((Entity) sp.p); | ||||||
| 		enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert")); | 		enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert")); | ||||||
| 		enemies.add(new Enemy("Pignat", 5, 1, "lumberjack_sheet32", "test")); | 		enemies.add(new Enemy("Pignat", 5, 1, "lumberjack_sheet32", "test")); | ||||||
|  |  | ||||||
|         for (Enemy enemy : enemies) { entities.add(enemy); } |         for (Enemy enemy : enemies) { entities.add(enemy); } | ||||||
|  |  | ||||||
| 		for (Entity entity : entities) { entity.init(); } | 		//Init all entities | ||||||
|  |         for (Entity entity : entities) { entity.init(); } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onGraphicRender(GdxGraphics g) { |     public void onGraphicRender(GdxGraphics g) { | ||||||
|         g.clear(); |         g.clear(); | ||||||
| 		sp.p.manageEntity(sp.sm, controller); |  | ||||||
|         sp.render(g); |  | ||||||
|         System.out.println(sp.screenManager.getActiveScreen().getClass()); |  | ||||||
|         //System.out.println(ScreenMap.class); |  | ||||||
| 		for (Entity entity : entities) { |  | ||||||
|  |  | ||||||
|             if (entity.getMap().equals(sp.sm.map) && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class)) |         boolean onMapScreen = sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class); | ||||||
|  | 		 | ||||||
|  |         if(onMapScreen) sp.p.manageEntity(sp.sm, controller); | ||||||
|  |         sp.render(g); | ||||||
|  |          | ||||||
|  | 		for (Entity entity : entities) { | ||||||
|  |             // Render only entities on the good map | ||||||
|  |             if (entity.getMap().equals(sp.sm.map) && onMapScreen) | ||||||
|                 entity.graphicRender(g); |                 entity.graphicRender(g); | ||||||
| 		} | 		} | ||||||
|          |          | ||||||
|         if (sp.p.frontOfEnemy && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class)){ |         // Switch screen | ||||||
|  |         if (sp.p.frontOfEnemy && onMapScreen){ | ||||||
|             sp.e = sp.p.lastEnemy; |             sp.e = sp.p.lastEnemy; | ||||||
|             System.out.println("switch screen"); |             System.out.println("switch screen"); | ||||||
|             sp.screenManager.activateNextScreen(); |             sp.screenManager.activateNextScreen(); | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ public class ScreenMap extends RenderingScreen{ | |||||||
| 	private MapObjects doors; | 	private MapObjects doors; | ||||||
| 	Map<String,TiledMap> tMap = new TreeMap<String,TiledMap>(); | 	Map<String,TiledMap> tMap = new TreeMap<String,TiledMap>(); | ||||||
| 	Map<String,TiledMapRenderer> tMapRenderer = new TreeMap<String,TiledMapRenderer>(); | 	Map<String,TiledMapRenderer> tMapRenderer = new TreeMap<String,TiledMapRenderer>(); | ||||||
| 	public String map = "test_couloir"; | 	public String map; | ||||||
| 	public float zoom; | 	public float zoom; | ||||||
|     private int width; |     private int width; | ||||||
|     public int tileWidth; |     public int tileWidth; | ||||||
| @@ -35,8 +35,6 @@ public class ScreenMap extends RenderingScreen{ | |||||||
|     public int tileHeight; |     public int tileHeight; | ||||||
|     private Player player; |     private Player player; | ||||||
|      |      | ||||||
|  |  | ||||||
|  |  | ||||||
|     private void createMap(String name){ |     private void createMap(String name){ | ||||||
| 		TiledMap tm =new TmxMapLoader().load("./resources/map/"+ name + ".tmx"); | 		TiledMap tm =new TmxMapLoader().load("./resources/map/"+ name + ".tmx"); | ||||||
| 		tMap.put(name,tm); | 		tMap.put(name,tm); | ||||||
| @@ -79,12 +77,9 @@ public class ScreenMap extends RenderingScreen{ | |||||||
|          |          | ||||||
| 		 | 		 | ||||||
| 		// Render the tileMap | 		// Render the tileMap | ||||||
|         try { |         g.zoom(zoom); | ||||||
|             g.zoom(zoom); |         try {g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);} | ||||||
|             g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);    |         catch (Exception e) {System.out.println("Fail to move camera");} | ||||||
|         } catch (Exception e) { |  | ||||||
|             //TODO: handle exception |  | ||||||
|         } |  | ||||||
|  |  | ||||||
| 		tMapRenderer.get(map).setView(g.getCamera()); | 		tMapRenderer.get(map).setView(g.getCamera()); | ||||||
| 		tMapRenderer.get(map).render(); | 		tMapRenderer.get(map).render(); | ||||||
|   | |||||||
| @@ -12,7 +12,11 @@ public class ScreenPlayer { | |||||||
|     public ScreenBattle sb; |     public ScreenBattle sb; | ||||||
|  |  | ||||||
|     public void init(){ |     public void init(){ | ||||||
|  |  | ||||||
|  |         // One player by ScreenPlayer | ||||||
|         p = new Player(8, 15, "desert"); |         p = new Player(8, 15, "desert"); | ||||||
|  |  | ||||||
|  |         // Create both type of screen and record for reuse | ||||||
|         screenManager.registerScreen(ScreenMap.class); |         screenManager.registerScreen(ScreenMap.class); | ||||||
|         screenManager.registerScreen(ScreenBattle.class); |         screenManager.registerScreen(ScreenBattle.class); | ||||||
|         sb = screenManager.getScreenBattle(); |         sb = screenManager.getScreenBattle(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user