From 697c9e659f7e8fd4f7eaf66cbf7e30c63f8e6d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Fri, 10 Jun 2022 18:49:02 +0200 Subject: [PATCH] switch screen --- src/Entity/Player.java | 20 ++++++++++---------- src/Main/PokeMudry.java | 22 +++++++++++++++------- src/Screen/ManagerOfScreen.java | 5 ++--- src/Screen/ScreenBattle.java | 5 +++++ src/Screen/ScreenMap.java | 9 +++++++-- src/Screen/ScreenPlayer.java | 5 +++++ 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/src/Entity/Player.java b/src/Entity/Player.java index 1eb7a55..ed31a4b 100644 --- a/src/Entity/Player.java +++ b/src/Entity/Player.java @@ -1,5 +1,6 @@ package Entity; +import java.util.TreeMap; import java.util.Vector; import com.badlogic.gdx.Input; @@ -13,9 +14,11 @@ import Screen.ScreenMap; public class Player extends Character{ private int xp; + public Enemy lastEnemy = null; + public boolean frontOfEnemy = false; public Player(int x, int y, String map) { - super("Player", x, y, "lumberjack_sheet32", map); + super("Player", x, y, "Character", map); } public void addXp(int xp){ @@ -54,6 +57,7 @@ public class Player extends Character{ if (sm.isWalkable(nextCell)) { if (enemy(sm, nextPos)) { + //turn(goalDirection); System.out.println("It's a enemy !!"); } else { setSpeed(sm.getSpeed(nextCell)); @@ -92,19 +96,15 @@ public class Player extends Character{ int eX = (int) enemy.position.x/sm.tileWidth; 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) return true; + if(bMap && pX==eX && pY==eY) { + lastEnemy = enemy; + frontOfEnemy = true; + return true; + } } return false; } - public void move(int x, int y){ - - } - - public void move(Vector2 vMove){ - move((int)vMove.x, (int)vMove.y); - } - @Override protected void removedPv(int pv) { // TODO Auto-generated method stub diff --git a/src/Main/PokeMudry.java b/src/Main/PokeMudry.java index f2b08b6..84d765f 100644 --- a/src/Main/PokeMudry.java +++ b/src/Main/PokeMudry.java @@ -2,12 +2,14 @@ package Main; import java.util.Vector; +import java.util.Map.Entry; import com.badlogic.gdx.Input; import Control.Controller; import Entity.Enemy; import Entity.Entity; +import Screen.ScreenMap; import Screen.ScreenPlayer; import ch.hevs.gdx2d.desktop.PortableApplication; import ch.hevs.gdx2d.lib.GdxGraphics; @@ -42,13 +44,9 @@ public class PokeMudry extends PortableApplication { enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert")); 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(); - } + for (Entity entity : entities) { entity.init(); } } @Override @@ -56,9 +54,19 @@ public class PokeMudry extends PortableApplication { 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)) entity.graphicRender(g); + + if (entity.getMap().equals(sp.sm.map) && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class)) + entity.graphicRender(g); } + + if (sp.p.frontOfEnemy && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class)){ + sp.e = sp.p.lastEnemy; + System.out.println("switch screen"); + sp.screenManager.activateNextScreen(); + } } diff --git a/src/Screen/ManagerOfScreen.java b/src/Screen/ManagerOfScreen.java index e53db94..0d5e92a 100644 --- a/src/Screen/ManagerOfScreen.java +++ b/src/Screen/ManagerOfScreen.java @@ -4,15 +4,14 @@ import ch.hevs.gdx2d.lib.ScreenManager; public class ManagerOfScreen extends ScreenManager{ ManagerOfScreen(){ - } - ScreenMap getScreenMap(){ + public ScreenMap getScreenMap(){ this.activateScreen(0); return (ScreenMap)this.getActiveScreen(); } - ScreenBattle getScreenBattle(){ + public ScreenBattle getScreenBattle(){ this.activateScreen(1); return (ScreenBattle)this.getActiveScreen(); } diff --git a/src/Screen/ScreenBattle.java b/src/Screen/ScreenBattle.java index 3ee7029..86964f3 100644 --- a/src/Screen/ScreenBattle.java +++ b/src/Screen/ScreenBattle.java @@ -20,6 +20,7 @@ public class ScreenBattle extends RenderingScreen{ private static int EDGE = 10; private static int HEIGHT_DIALOG = Settings.SIDE / 3; private static int WIDTH_DIALOG = Settings.SIDE - 2*EDGE; + private Enemy e; private boolean attackOn; private int numAttack =0; @@ -60,6 +61,10 @@ public class ScreenBattle extends RenderingScreen{ } + public void setEnemy(Enemy e) { + this.e = e; + } + public void displayEnemy(Enemy e){ // stock his speech diff --git a/src/Screen/ScreenMap.java b/src/Screen/ScreenMap.java index bc424aa..9cd2527 100644 --- a/src/Screen/ScreenMap.java +++ b/src/Screen/ScreenMap.java @@ -79,8 +79,13 @@ public class ScreenMap extends RenderingScreen{ // Render the tileMap - g.zoom(zoom); - g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight); + try { + g.zoom(zoom); + g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight); + } catch (Exception e) { + //TODO: handle exception + } + tMapRenderer.get(map).setView(g.getCamera()); tMapRenderer.get(map).render(); diff --git a/src/Screen/ScreenPlayer.java b/src/Screen/ScreenPlayer.java index 20cdcbe..a445491 100644 --- a/src/Screen/ScreenPlayer.java +++ b/src/Screen/ScreenPlayer.java @@ -1,21 +1,26 @@ package Screen; +import Entity.Enemy; import Entity.Player; import ch.hevs.gdx2d.lib.GdxGraphics; public class ScreenPlayer { public ManagerOfScreen screenManager = new ManagerOfScreen(); public Player p; + public Enemy e; public ScreenMap sm; + public ScreenBattle sb; public void init(){ p = new Player(8, 15, "desert"); screenManager.registerScreen(ScreenMap.class); screenManager.registerScreen(ScreenBattle.class); + sb = screenManager.getScreenBattle(); sm = screenManager.getScreenMap(); } public void render(GdxGraphics g){ + sb.setEnemy(e); sm.setPlayer(p); screenManager.render(g); }