From 3368e1b8c4e05c4fae9d16652d6dcaacb8582803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Wed, 8 Jun 2022 08:25:20 +0200 Subject: [PATCH 1/4] add *Tiled --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7656ce3..ff8e3ce 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ build # Ignore bin -app/bin/ \ No newline at end of file +app/bin/ +*.tiled-session +resources/map/Maps.tiled-session From 4843f5d1d89f518cc7c78e9a25a567fc0c5ed216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Wed, 8 Jun 2022 20:08:18 +0200 Subject: [PATCH 2/4] near to done --- .gitignore | 2 +- resources/Base.png | Bin 0 -> 1048 bytes resources/Character.png | Bin 0 -> 1512 bytes src/Entity/Enemy.java | 8 +- src/Entity/Entity.java | 1 - src/Entity/Player.java | 16 ++-- src/Screen/Hero.java | 189 ---------------------------------------- src/testHER.java | 23 +++-- 8 files changed, 31 insertions(+), 208 deletions(-) create mode 100644 resources/Base.png create mode 100644 resources/Character.png delete mode 100644 src/Screen/Hero.java diff --git a/.gitignore b/.gitignore index ff8e3ce..144401e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,6 @@ build # Ignore bin -app/bin/ +bin/ *.tiled-session resources/map/Maps.tiled-session diff --git a/resources/Base.png b/resources/Base.png new file mode 100644 index 0000000000000000000000000000000000000000..3485b127e652ac1c693ba66b8645816f932512ee GIT binary patch literal 1048 zcmV+z1n2vSP)4*rHj20FL8Y79G`?LAI+YgQuF2I0+nS!%Y10YcKW|{4GO%Y1EOsF4 z_6Cs~(~`FizPz?fXS@1^2XV@)_1xf-4&ROq2Ib>B z%?-jAm-#Wu_d5JwsU@oc)5gb-Xzqy_Nf|S$phVG7(o6PXtks?@sDMRj_VSH1q~($0ZnBIVe3MZif-gX zXlV^5_?m-CY1AXr)-qkrQ3W*6BR@qw)&VLoy{=3b13jXF3XldujcO!uq>I69&|o&) zpmY#4pVPFq|3p_Xe1QS>Zy!(;w(%BG+XNJ z|7aaBI$(6bcnrejfFT+U@1FyVQr>xLz8Wx8Jy*7;6JYRiN_TB>-2+Bo=UM?HEPP3K z4}6OxuhGDiB?Oi@C&1vprq}8Pq;{drc0HP?OF&G+ys`&sf zu)dcGkUZ;2h+|C-fuuAQTZ1HyHMMo5R+bhqnl3Gp^!9w~<-M2pUfv&r(C-iW{XxG! z==TS`{jt^oqXWi20T`ck_<9jwe9+z_1w&yaj)& z0Wj308^F*$86M<0W$@3%fED~w-Vrb;>123j$`qh-$qE=Ol||(Ro(CZ(i3T34V;#V& zX$1_{Lyy@Cz6G)#%WVY;*=W{-q=BH7HOyEYjhJ_QzzKyKpeVr60tQxN)BfC_SDauq z@P0r7+G$#6m3R!&XkbayTn6m)EZ_=36@tNgpmUc8rzsIBXa^weWx>lY4}JqiXi?t- S%d#*40000P)C00015P)t-sz`(#R zE-n)j6IfVSMn*<-baW&UFa6lY@~?flhiKf#%me@c3jqMrzPkVe00aO9`R)Gz2?GEE z3HbE!00#j0`1s)9;Q#;sr>ChmH#JpNQfFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;Zh zDainGjE%TBGg33tGfE(w;*!LYR3K9+H$OSMK#7YpC9|j)q=}0&ttc@!70OOY%}J~T zGL3Y=kc%@nzbrL3H4kKpA(yg(tDg(lRsi}Sxs(6^1hGj(K~#90?V1gb(=ZH% zo3?Y)1Fi=g{n(EG|2MInv_qO-XE4Melt_0VUe|u|(ILM})BIy2gz$jewB_ep|M{*9 z0VGj@b(o=TL)&qHQ=erHf*CY_-*vqWpo$P80IA+##5Uvrs7nQ{Vn!78mbFfP&*#vA%}@QVY7zrLxcdC-_LT4mOR|nz0R9ljvixBJ90`K? zQNRU;fg{2&SOpaD$YH-FDrpiMKvO4xTb&EAo<^_>9P>9n2(q4%SO7USdcJ96h~qd6 zsS{XU|ACY&?RJb#GGPv=t-wIlSwIh0A385W;jB`}d zHD=Q&2SA?O>;RGIeBQS6nIw&=ZvwEHdIpdv4}hNp04z2n#rdbPl9Y4>U>)VpgmiWS z^kFAMNf$z|z9OD|zy|>~zkVTtE*IK=+xna6Z%A*vhwstpEfsh}00q4%h-E#UE$^e$ z*H!cZe7TM~nrcu~gQ6M~)u5;bMKvg@K~W8gY(SuZzh+Q?2KTQS6rjWY*`R>!IXCZa zbGl%E;A&7%G#Bw|P|RqR1z?3sz{2VR%zOVIN8g}8?KuOeNdw%2s0IyoNI2_mK$r^< z4?x_W^X|>x<98c?1(sLn5AeEXg97pG1_hXcG~aSQoGsvUgd2FG!+-#Mo}K~DC4<6s z5Ln+}|1SNd|}eK~(lI$|eVNNO*?6 zJ#k;q@0%QiUw~fzq8b#{pm=A4;?u`r`0(^z2F2?XzkV5p&o9w7 zAfB%Vg=t_sZcse$1_dwxrrn?b2FAk%1--LDA^rbj1_j+`P~iT2^$ZBQ$Dml2)#*;T zH}iN0nB40?fDL9->~4`pXVp{8vuaJU|x~E(WLHL`e%4SVmBykLjG3;0L`1sKmkzt z<}e`Od$Q|x3i(pD(Ep2n;Jqf?yKndS1I`_Z5`f#DrrJKB|MfiMI}U`3@Z0|b0Lvx) zqBkhE3pxXb4il8@jgtF7$-uC~vOom0JZNuR4Gerju2D_`ufU)8H+}%sM38xBb(I$Y O0000 frameTime) { - dt -= frameTime; - currentFrame = (currentFrame + 1) % nFrames; - - if(currentFrame == 0){ - move = false; - lastPosition = new Vector2(newPosition); - position = new Vector2(newPosition); - } - } - } - - /** - * @return True if the hero is actually doing a step. - */ - public boolean isMoving(){ - return move; - } - - /** - * @param speed The new speed of the hero. - */ - public void setSpeed(float speed){ - this.speed = speed; - } - - /** - * Do a step on the given direction - * @param direction The direction to go. - */ - public void go(Direction direction){ - move = true; - switch(direction){ - case RIGHT: - newPosition.add(SPRITE_WIDTH, 0); - break; - case LEFT: - newPosition.add(-SPRITE_WIDTH, 0); - break; - case UP: - newPosition.add(0, SPRITE_HEIGHT); - break; - case DOWN: - newPosition.add(0, -SPRITE_HEIGHT); - break; - default: - break; - } - - turn(direction); - } - - /** - * Turn the hero on the given direction without do any step. - * @param direction The direction to turn. - */ - public void turn(Direction direction){ - switch(direction){ - case RIGHT: - textureY = 2; - break; - case LEFT: - textureY = 1; - break; - case UP: - textureY = 3; - break; - case DOWN: - textureY = 0; - break; - default: - break; - } - } - - /** - * Draw the character on the graphic object. - * @param g Graphic object. - */ - public void draw(GdxGraphics g) { - g.draw(ss.sprites[textureY][currentFrame], position.x, position.y); - } -} diff --git a/src/testHER.java b/src/testHER.java index b177a7c..4a74342 100644 --- a/src/testHER.java +++ b/src/testHER.java @@ -1,6 +1,9 @@ +import java.util.Vector; + import com.badlogic.gdx.Input; import Control.Controller; +import Entity.Enemy; import Entity.Entity; import Entity.Player; import Screen.ScreenMap; @@ -13,12 +16,12 @@ public class testHER extends PortableApplication{ private Controller controller; private ScreenMap sm; private Player p1; - private static Entity[] entities; + private static Vector entities = new Vector<>(); + private static Vector players = new Vector<>(); public testHER(){ controller = new Controller(); - p1 = new Player(8, 15); sm = new ScreenMap(); } @@ -32,15 +35,25 @@ public class testHER extends PortableApplication{ public void onInit() { controller.init(); sm.init(); - p1.init(); + p1 = new Player(8, 15); + entities.add((Entity) p1); + entities.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32")); + entities.add(new Enemy("Pignat", 12, 15, "lumberjack_sheet32")); + + for (Entity entity : entities) { + entity.init(); + } } @Override public void onGraphicRender(GdxGraphics g) { g.clear(); p1.manageEntity(sm, controller); - sm.graphicRender(g, p1); // load p1 by Entity[] - p1.graphicRender(g); + sm.graphicRender(g, p1); + + for (Entity entity : entities) { + entity.graphicRender(g); + } } @Override From cd64313dec8d23f4709442974b3e5c7261602f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Wed, 8 Jun 2022 20:18:22 +0200 Subject: [PATCH 3/4] add enemy but no interaction --- src/Entity/Player.java | 8 ++++++++ src/Screen/ScreenMap.java | 1 + src/testHER.java | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/src/Entity/Player.java b/src/Entity/Player.java index d8f6478..ff577ed 100644 --- a/src/Entity/Player.java +++ b/src/Entity/Player.java @@ -50,6 +50,8 @@ public class Player extends Character{ // Go setSpeed(sm.getSpeed(nextCell)); go(goalDirection); + } else { + } } else { // Face the wall @@ -76,6 +78,12 @@ public class Player extends Character{ } private boolean enemy() { + /* + Vector entities = testHER.getEntities; + for (Entity entity : entities) { + + } + */ return false; } diff --git a/src/Screen/ScreenMap.java b/src/Screen/ScreenMap.java index 9c70f2b..0dba65e 100644 --- a/src/Screen/ScreenMap.java +++ b/src/Screen/ScreenMap.java @@ -32,6 +32,7 @@ public class ScreenMap { public int tileWidth; private int height; public int tileHeight; + private void createMap(String name){ diff --git a/src/testHER.java b/src/testHER.java index 4a74342..a11d713 100644 --- a/src/testHER.java +++ b/src/testHER.java @@ -25,6 +25,10 @@ public class testHER extends PortableApplication{ sm = new ScreenMap(); } + public static Vector getEntities() { + return entities; + } + public static void main(String[] args) { From 3d05c1e5fa6f96fd05abba5688608aa35d02745e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Thu, 9 Jun 2022 17:32:47 +0200 Subject: [PATCH 4/4] done --- src/Entity/Enemy.java | 17 ++++-- src/Entity/Player.java | 17 ++---- src/PokeMudry.java | 64 ++++++++++++++++++++--- src/Screen/ManagerOfScreen.java | 19 +++++++ src/Screen/ScreenMap.java | 22 ++++---- src/Screen/ScreenPlayer.java | 18 +++---- src/testHER.java | 91 --------------------------------- 7 files changed, 115 insertions(+), 133 deletions(-) create mode 100644 src/Screen/ManagerOfScreen.java delete mode 100644 src/testHER.java diff --git a/src/Entity/Enemy.java b/src/Entity/Enemy.java index 5fb1d14..658c27e 100644 --- a/src/Entity/Enemy.java +++ b/src/Entity/Enemy.java @@ -7,11 +7,13 @@ import com.badlogic.gdx.math.Vector2; import ch.hevs.gdx2d.lib.GdxGraphics; public class Enemy extends Character{ + private String map; public FightData fightData; - public Enemy(String name, int x, int y, String img) { + public Enemy(String name, int x, int y, String img, String map) { super(name, x, y, img); + this.map = map; turn(Character.Direction.DOWN); //generate the vector of fight @@ -20,12 +22,17 @@ public class Enemy extends Character{ } - public void setPosition(int x, int y){ - + public String getMap() { + return map; } - public void setPosition(Vector2 vPosition){ - setPosition((int)vPosition.x, (int)vPosition.y); + public void setPosition(int x, int y, String map){ + position.set(x, y); + this.map = map; + } + + public void setPosition(Vector2 vPosition, String map){ + setPosition((int)vPosition.x, (int)vPosition.y, map); } @Override diff --git a/src/Entity/Player.java b/src/Entity/Player.java index ff577ed..06c6d45 100644 --- a/src/Entity/Player.java +++ b/src/Entity/Player.java @@ -46,13 +46,8 @@ public class Player extends Character{ // Is the move valid ? if (sm.isWalkable(nextCell)) { - if(!enemy()){ - // Go - setSpeed(sm.getSpeed(nextCell)); - go(goalDirection); - } else { - - } + setSpeed(sm.getSpeed(nextCell)); + go(goalDirection); } else { // Face the wall turn(goalDirection); @@ -78,12 +73,10 @@ public class Player extends Character{ } private boolean enemy() { - /* - Vector entities = testHER.getEntities; - for (Entity entity : entities) { + //Vector enemies = PokeMudry.getEnemies; + //for (Enemy enemy : enemies) { - } - */ + //} return false; } diff --git a/src/PokeMudry.java b/src/PokeMudry.java index a777dca..b9009a3 100644 --- a/src/PokeMudry.java +++ b/src/PokeMudry.java @@ -1,3 +1,12 @@ +import java.util.Vector; + +import com.badlogic.gdx.Input; + +import Control.Controller; +import Entity.Enemy; +import Entity.Entity; +import Entity.Player; +import Screen.ScreenMap; import Screen.ScreenPlayer; import ch.hevs.gdx2d.desktop.PortableApplication; import ch.hevs.gdx2d.lib.GdxGraphics; @@ -7,7 +16,11 @@ public class PokeMudry extends PortableApplication { public final int PLAYERS = 1; public static final int TIME = 10; // number of minutes for kill all enemy - private ScreenPlayer screenPlayer = new ScreenPlayer(); + private ScreenPlayer sp; + private Controller controller; + //private Player p1; + private static Vector enemies = new Vector<>(); + private static Vector entities = new Vector<>(); public static void main(String[] args) { @@ -16,29 +29,68 @@ public class PokeMudry extends PortableApplication { PokeMudry(){ super(1000, 800); + controller = new Controller(); + sp = new ScreenPlayer(); } - + + public static Vector getEnemies() { + return enemies; + } @Override public void onInit() { - screenPlayer.init(); + sp.init(); + controller.init(); + entities.add((Entity) sp.p); + enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert")); + enemies.add(new Enemy("Pignat", 12, 15, "lumberjack_sheet32", "desert")); + + for (Enemy enemy : enemies) { + entities.add(enemy); + } + + for (Entity entity : entities) { + entity.init(); + } } @Override public void onGraphicRender(GdxGraphics g) { - screenPlayer.render(g); + g.clear(); + sp.p.manageEntity(sp.sm, controller); + sp.render(g); + for (Entity entity : entities) { + entity.graphicRender(g); + } } //key gestion @Override public void onKeyDown(int keycode) { - screenPlayer.screenManager.getActiveScreen().onKeyDown(keycode); super.onKeyDown(keycode); + + switch (keycode) { + case Input.Keys.Z: + if (sp.sm.zoom == 1.0) { + sp.sm.zoom = 0.5f; + } else if (sp.sm.zoom == 0.5) { + sp.sm.zoom = 0.25f; + } else { + sp.sm.zoom = 1; + } + return; + + default: + break; + } + controller.keyStatus.put(keycode, true); + sp.screenManager.getActiveScreen().onKeyUp(keycode); } @Override public void onKeyUp(int keycode) { - screenPlayer.screenManager.getActiveScreen().onKeyUp(keycode); super.onKeyUp(keycode); + controller.keyStatus.put(keycode, false); + sp.screenManager.getActiveScreen().onKeyDown(keycode); } } diff --git a/src/Screen/ManagerOfScreen.java b/src/Screen/ManagerOfScreen.java new file mode 100644 index 0000000..e53db94 --- /dev/null +++ b/src/Screen/ManagerOfScreen.java @@ -0,0 +1,19 @@ +package Screen; + +import ch.hevs.gdx2d.lib.ScreenManager; + +public class ManagerOfScreen extends ScreenManager{ + ManagerOfScreen(){ + + } + + ScreenMap getScreenMap(){ + this.activateScreen(0); + return (ScreenMap)this.getActiveScreen(); + } + + ScreenBattle getScreenBattle(){ + this.activateScreen(1); + return (ScreenBattle)this.getActiveScreen(); + } +} \ No newline at end of file diff --git a/src/Screen/ScreenMap.java b/src/Screen/ScreenMap.java index 4e9f955..9a109db 100644 --- a/src/Screen/ScreenMap.java +++ b/src/Screen/ScreenMap.java @@ -55,7 +55,7 @@ public class ScreenMap extends RenderingScreen{ @Override public void onGraphicRender(GdxGraphics g) { - + tiledLayer.clear(); for (int i = 0; i < 50; i++) { try { tiledLayer.add((TiledMapTileLayer) tMap.get(map).getLayers().get(i)); } catch (Exception e) { } @@ -65,25 +65,30 @@ public class ScreenMap extends RenderingScreen{ tileWidth = (int) tl.getTileWidth(); height = tl.getHeight(); tileHeight = (int) tl.getTileHeight(); + //System.out.println(width + " x " + height + " - " + tileWidth + " x " + tileHeight); try { - doors = tMap.get(map).getLayers().get("door").getObjects(); + doors = tMap.get(map).getLayers().get("door").getObjects(); } catch (Exception e) { doors = null; } - - // Camera follows the hero - g.zoom(zoom); - //g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight); + // Render the tileMap tMapRenderer.get(map).setView(g.getCamera()); tMapRenderer.get(map).render(); - + g.drawFPS(); } + void camera(GdxGraphics g, Player player){ + g.zoom(zoom); + g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight); + + } + public Vector getTile(Vector2 position, int offsetX, int offsetY) { Vector tiles = new Vector<>(); + for (TiledMapTileLayer tl : tiledLayer) { int x = (int) (position.x / tileWidth) + offsetX; int y = (int) (position.y / tileHeight) + offsetY; @@ -91,7 +96,7 @@ public class ScreenMap extends RenderingScreen{ Cell cell = tl.getCell(x, y); if (cell == null) continue; tiles.add(cell.getTile()); - } catch (Exception e) { } + } catch (Exception e) { System.out.println("error: cell");} } return tiles; @@ -160,5 +165,4 @@ public class ScreenMap extends RenderingScreen{ nextY = null; } } - } diff --git a/src/Screen/ScreenPlayer.java b/src/Screen/ScreenPlayer.java index ce5fde5..042a75e 100644 --- a/src/Screen/ScreenPlayer.java +++ b/src/Screen/ScreenPlayer.java @@ -2,25 +2,23 @@ package Screen; import Entity.Player; import ch.hevs.gdx2d.lib.GdxGraphics; -import ch.hevs.gdx2d.lib.ScreenManager; public class ScreenPlayer { - public ScreenManager screenManager = new ScreenManager(); + public ManagerOfScreen screenManager = new ManagerOfScreen(); + public Player p; + public ScreenMap sm; - private Player player; public void init(){ - - player = new Player(8, 15); - - screenManager.registerScreen(ScreenMap.class); screenManager.registerScreen(ScreenBattle.class); - + sm = screenManager.getScreenMap(); + p = new Player(8, 15); } public void render(GdxGraphics g){ screenManager.render(g); - + sm.camera(g, p); } -} + +} \ No newline at end of file diff --git a/src/testHER.java b/src/testHER.java deleted file mode 100644 index a11d713..0000000 --- a/src/testHER.java +++ /dev/null @@ -1,91 +0,0 @@ -import java.util.Vector; - -import com.badlogic.gdx.Input; - -import Control.Controller; -import Entity.Enemy; -import Entity.Entity; -import Entity.Player; -import Screen.ScreenMap; -import ch.hevs.gdx2d.desktop.PortableApplication; -import ch.hevs.gdx2d.lib.GdxGraphics; - - -public class testHER extends PortableApplication{ - - private Controller controller; - private ScreenMap sm; - private Player p1; - private static Vector entities = new Vector<>(); - private static Vector players = new Vector<>(); - - - public testHER(){ - controller = new Controller(); - sm = new ScreenMap(); - } - - public static Vector getEntities() { - return entities; - } - - - - public static void main(String[] args) { - new testHER(); - } - - @Override - public void onInit() { - controller.init(); - sm.init(); - p1 = new Player(8, 15); - entities.add((Entity) p1); - entities.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32")); - entities.add(new Enemy("Pignat", 12, 15, "lumberjack_sheet32")); - - for (Entity entity : entities) { - entity.init(); - } - } - - @Override - public void onGraphicRender(GdxGraphics g) { - g.clear(); - p1.manageEntity(sm, controller); - sm.graphicRender(g, p1); - - for (Entity entity : entities) { - entity.graphicRender(g); - } - } - - @Override - public void onKeyUp(int keycode) { - super.onKeyUp(keycode); - - controller.keyStatus.put(keycode, false); - } - - @Override - public void onKeyDown(int keycode) { - super.onKeyDown(keycode); - - switch (keycode) { - case Input.Keys.Z: - if (sm.zoom == 1.0) { - sm.zoom = 0.5f; - } else if (sm.zoom == 0.5) { - sm.zoom = 0.25f; - } else { - sm.zoom = 1; - } - return; - - default: - break; - } - controller.keyStatus.put(keycode, true); - } - -}