From 4eb6e895eb3631d784a1c0ddc3014d7f14c1832d Mon Sep 17 00:00:00 2001 From: Elisandro Rodrigues Date: Sat, 4 Dec 2021 20:43:22 -0300 Subject: [PATCH] Animacao player --- src/com/ks2002br/entities/Player.java | 54 ++++++++++++++++++++----- src/com/ks2002br/game/Game.java | 8 ++-- src/com/ks2002br/graficos/Texturas.java | 42 +++++++------------ 3 files changed, 63 insertions(+), 41 deletions(-) diff --git a/src/com/ks2002br/entities/Player.java b/src/com/ks2002br/entities/Player.java index 5a2d498..c199f26 100644 --- a/src/com/ks2002br/entities/Player.java +++ b/src/com/ks2002br/entities/Player.java @@ -20,11 +20,25 @@ public class Player extends GameObject { private Texturas tex = Game.getInstance(); private GameController gc; + + private Animation animIdle, animEsq, animDir; + private int dir = 1; //1 = direita -1 = esquerda + private boolean move = false; public Player(float x, float y, int tipo, ObjectId id, GameController gc) { super(x, y, id); this.gc = gc; this.tipo = tipo; + + startPlayer(); + } + + private void startPlayer() { + + animIdle = new Animation(10,tex.player_idle); + animEsq = new Animation(5, tex.playerLeft); + animDir = new Animation(5, tex.playerRight); + } public void tick(LinkedList obj) { @@ -42,12 +56,27 @@ public void tick(LinkedList obj) { spdY += gravity; if(spdY > MAX_SPD) spdY = MAX_SPD; } - - verificarColisao(obj); + + if (spdX > 0 ) dir = 1; + if (spdX < 0 ) dir = -1; + + startAnim(); + verificarColisao(obj); } + private void startAnim() { + + animEsq.runAnimation(); + animDir.runAnimation(); + animIdle.runAnimation(); + + if (spdX != 0 ) move = true; + else move = false; + + } + private void verificarColisao(LinkedList obj) { for (int i = 0; i < gc.obj.size(); i++) { GameObject tempObj = gc.obj.get(i); @@ -94,15 +123,20 @@ else if (getBoundsDir() .intersects(tempObj.getBounds())) } public void render(Graphics g) { - //g.setColor(Color.white); - // g.fillRect((int) x, (int) y, width, height); - - // if(tipo== 0) g.drawImage(tex.player[0],(int) x,(int) y,null); - // if(tipo== 1) g.drawImage(tex.player[1],(int) x,(int) y,null); - // if(tipo== 2) g.drawImage(tex.player[2],(int) x,(int) y,null); - // if(tipo== 3) g.drawImage(tex.player[3],(int) x,(int) y,null); - Graphics2D g2d = (Graphics2D) g; + + if(move) { + + if(dir == 1) animDir.renderAnimation(g2d, (int) x, (int) y); + else if(dir == -1) animEsq.renderAnimation(g2d, (int) x, (int) y); + + + }else { + animIdle.renderAnimation(g2d, (int) x, (int) y); + } + + + // REDERIZACAO DAS CAIXAS DE COLISOES if (gc.isDebug()) { diff --git a/src/com/ks2002br/game/Game.java b/src/com/ks2002br/game/Game.java index b774d2f..f7616f0 100644 --- a/src/com/ks2002br/game/Game.java +++ b/src/com/ks2002br/game/Game.java @@ -37,7 +37,7 @@ public class Game extends Canvas implements Runnable { private static Texturas tex; - private TestAnim testAnim; + //private TestAnim testAnim; // CONTRUTOR DA CLASSE @@ -56,7 +56,7 @@ private void startGame() { CarregarImagem mapa = new CarregarImagem(); tex = new Texturas(); - testAnim = new TestAnim(40, 60, null); + //testAnim = new TestAnim(40, 60, null); level = mapa.pegarImagem("/mapa-01.png"); world = new World(level, gc); @@ -133,7 +133,7 @@ private void tick() { } - testAnim.tick(null); + // testAnim.tick(null); } @@ -161,7 +161,7 @@ private void render() { g2d.translate(-cam.getCamX(),-cam.getCamY()); // CAMERA FIM - testAnim.render(g2d); + // testAnim.render(g2d); // FINAL DO OBJETOS A SEREM DESENHADOS bs.show(); // MOSTRAR TUDO QUE O PINTOR DESENHOU diff --git a/src/com/ks2002br/graficos/Texturas.java b/src/com/ks2002br/graficos/Texturas.java index bacfa7d..8185516 100644 --- a/src/com/ks2002br/graficos/Texturas.java +++ b/src/com/ks2002br/graficos/Texturas.java @@ -51,43 +51,31 @@ private void getTextures() { //PLAYER - playerUp[0] = playerSheet.pegarSpriteColRow(1, 1, 32, 64); - playerUp[1] = playerSheet.pegarSpriteColRow(2, 1, 32, 64); - playerUp[2] = playerSheet.pegarSpriteColRow(3, 1, 32, 64); - playerUp[3] = playerSheet.pegarSpriteColRow(4, 1, 32, 64); - playerUp[4] = playerSheet.pegarSpriteColRow(5, 1, 32, 64); + for (int i = 0; i < playerUp.length; i++) { + playerUp[i] = playerSheet.pegarSpriteColRow(i+1, 1, 32, 64); + } // PLAYER DOWN - playerDown[0] = playerSheet.pegarSpriteColRow(1, 2, 32, 64); - playerDown[1] = playerSheet.pegarSpriteColRow(2, 2, 32, 64); - playerDown[2] = playerSheet.pegarSpriteColRow(3, 2, 32, 64); - playerDown[3] = playerSheet.pegarSpriteColRow(4, 2, 32, 64); - playerDown[4] = playerSheet.pegarSpriteColRow(5, 2, 32, 64); + for (int i = 0; i