From c6df8e1ddf0b20ec6e3e364d80acbcc9a853c118 Mon Sep 17 00:00:00 2001 From: Elisandro Rodrigues Date: Sun, 18 Jul 2021 21:01:09 -0300 Subject: [PATCH] MeuPrimeiroMundo,implementandoTeclado --- src/com/ks2002br/entities/Player.java | 26 ++++++++++ src/com/ks2002br/frameworks/Bloco.java | 26 ++++++++++ src/com/ks2002br/frameworks/Cobaia.java | 9 ++-- .../ks2002br/frameworks/GameController.java | 31 +++++++++-- src/com/ks2002br/frameworks/ObjectId.java | 2 +- src/com/ks2002br/game/Game.java | 12 +++-- src/com/ks2002br/graficos/CarregarImagem.java | 2 +- src/com/ks2002br/graficos/FolhaSprites.java | 2 +- src/com/ks2002br/input/Teclado.java | 51 +++++++++++++++++++ 9 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 src/com/ks2002br/entities/Player.java create mode 100644 src/com/ks2002br/frameworks/Bloco.java create mode 100644 src/com/ks2002br/input/Teclado.java diff --git a/src/com/ks2002br/entities/Player.java b/src/com/ks2002br/entities/Player.java new file mode 100644 index 0000000..4cf126c --- /dev/null +++ b/src/com/ks2002br/entities/Player.java @@ -0,0 +1,26 @@ +package com.ks2002br.entities; + +import java.awt.Color; +import java.awt.Graphics; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; + +public class Player extends GameObject { + + public Player(float x, float y, ObjectId id) { + super(x, y, id); + } + + public void tick() { + x+=spdX; + y+=spdY; + } + + + public void render(Graphics g) { + g.setColor(Color.white); + g.fillRect((int)x, (int)y,64, 64); + } + +} diff --git a/src/com/ks2002br/frameworks/Bloco.java b/src/com/ks2002br/frameworks/Bloco.java new file mode 100644 index 0000000..1bc5182 --- /dev/null +++ b/src/com/ks2002br/frameworks/Bloco.java @@ -0,0 +1,26 @@ +package com.ks2002br.frameworks; + +import java.awt.Color; +import java.awt.Graphics; + +public class Bloco extends GameObject{ + + public Bloco(float x, float y, ObjectId id) { + super(x, y, id); + } + + public void tick() { + } + + public void render(Graphics g) { + g.setColor(Color.GREEN); + g.fillRect((int)x,(int)y, 32, 32); + //divisas do bloco + g.setColor(Color.BLACK); + g.drawRect((int)x,(int)y, 32, 32); + + } + + + +} diff --git a/src/com/ks2002br/frameworks/Cobaia.java b/src/com/ks2002br/frameworks/Cobaia.java index c50f9bc..93a041b 100644 --- a/src/com/ks2002br/frameworks/Cobaia.java +++ b/src/com/ks2002br/frameworks/Cobaia.java @@ -9,16 +9,15 @@ public Cobaia(float x, float y, ObjectId id) { super(x, y, id); } - public void tick() { - x++; + x+=spdX; + y+=spdY; } public void render(Graphics g) { g.setColor(Color.blue); - g.fillRect((int)x, (int)y,128, 128); - } - + g.fillRect((int)x, (int)y,64, 64); + } } diff --git a/src/com/ks2002br/frameworks/GameController.java b/src/com/ks2002br/frameworks/GameController.java index 55d1be6..73144d5 100644 --- a/src/com/ks2002br/frameworks/GameController.java +++ b/src/com/ks2002br/frameworks/GameController.java @@ -3,9 +3,11 @@ import java.awt.Graphics; import java.util.LinkedList; +import com.ks2002br.game.Game; + public class GameController { - private LinkedList obj = new LinkedList<>(); + public LinkedList obj = new LinkedList<>(); private GameObject tempObj; @@ -25,12 +27,33 @@ public void draw(Graphics g) { public void addObj(GameObject obj) { this.obj.add(obj); - System.out.println("[DEBUG GameController] UM OBJETO FOI CRIADO"); + System.out.println("[DEBUG GameController] UM OBJETO FOI CRIADO :" +obj.getId()); } public void removeObj(GameObject obj) { this.obj.remove(obj); - System.out.println("[DEBUG GameController] UM OBJETO FOI REMOVIDO"); - } + System.out.println("[DEBUG GameController] UM OBJETO FOI REMOVIDO :"+obj.getId()); + } + + + public void criarMundo() { + //Mundo de blocos de 32x32 + for (int xx = 0; xx < Game.LARGURA*2+32; xx+=32) { + //TOP + addObj(new Bloco(xx, 0, ObjectId.BLOCO)); + + //CHAO + addObj(new Bloco(xx, Game.ALTURA*2-32,ObjectId.BLOCO)); + + //ESQUERDA + addObj(new Bloco(0, xx+32,ObjectId.BLOCO)); + + //DIREITA + addObj(new Bloco(Game.ALTURA*2-32, xx,ObjectId.BLOCO)); + + } + + + } } diff --git a/src/com/ks2002br/frameworks/ObjectId.java b/src/com/ks2002br/frameworks/ObjectId.java index 324ab35..d28b4aa 100644 --- a/src/com/ks2002br/frameworks/ObjectId.java +++ b/src/com/ks2002br/frameworks/ObjectId.java @@ -7,6 +7,6 @@ public enum ObjectId { ENEMY, ARMA, BALA, - SOLIDO; + SOLIDO, BLOCO; } diff --git a/src/com/ks2002br/game/Game.java b/src/com/ks2002br/game/Game.java index 06d3c60..9cf2a14 100644 --- a/src/com/ks2002br/game/Game.java +++ b/src/com/ks2002br/game/Game.java @@ -8,11 +8,13 @@ import javax.swing.JFrame; +import com.ks2002br.entities.Player; import com.ks2002br.frameworks.Cobaia; import com.ks2002br.frameworks.GameController; import com.ks2002br.frameworks.ObjectId; import com.ks2002br.graficos.CarregarImagem; import com.ks2002br.graficos.FolhaSprites; +import com.ks2002br.input.Teclado; public class Game extends Canvas implements Runnable { @@ -47,9 +49,13 @@ private void startGame() { spriteSheet = new FolhaSprites("/spritesheet-01.png"); //passo 02 / inicializando gc = new GameController(); - //OBJETOS AQUI - gc.addObj(new Cobaia(20, 50,ObjectId.COBAIA)); - gc.addObj(new Cobaia(120, 450,ObjectId.COBAIA)); + addKeyListener(new Teclado(gc)); + + //OBJETOS AQUI + gc.criarMundo(); + + gc.addObj(new Cobaia(220, 250,ObjectId.COBAIA)); + gc.addObj(new Player(120, 450,ObjectId.PLAYER)); } diff --git a/src/com/ks2002br/graficos/CarregarImagem.java b/src/com/ks2002br/graficos/CarregarImagem.java index 8963157..01cd4f4 100644 --- a/src/com/ks2002br/graficos/CarregarImagem.java +++ b/src/com/ks2002br/graficos/CarregarImagem.java @@ -12,7 +12,7 @@ public class CarregarImagem { public Image pegarImagem(String caminho) { try { img = ImageIO.read(getClass().getResource(caminho)); - System.out.println("Loading image... Done!"); + System.out.println("[DEBUG CarregarImagem] CARREGANDO IMAGEM - COMPLETO!"); return img; } catch (IOException | IllegalArgumentException e) { System.err.println("[DEBUG CarregarImagem] Não foi localizado o arquivo pedido! Sistema sera encerrado! \n"); diff --git a/src/com/ks2002br/graficos/FolhaSprites.java b/src/com/ks2002br/graficos/FolhaSprites.java index 7eabb27..d4cfccd 100644 --- a/src/com/ks2002br/graficos/FolhaSprites.java +++ b/src/com/ks2002br/graficos/FolhaSprites.java @@ -12,7 +12,7 @@ public class FolhaSprites { public FolhaSprites(String caminho) { try { img = ImageIO.read(getClass().getResource(caminho)); - System.out.println("Loading spritesheet... Done!"); + System.out.println("[DEBUG FolhaSprites] LOADING SPRITESHEET... OK!"); } catch (IOException | IllegalArgumentException e) { System.err.println("[DEBUG FolhaSprites] Não foi localizado o arquivo pedido! Sistema sera encerrado! \n"); e.printStackTrace(); diff --git a/src/com/ks2002br/input/Teclado.java b/src/com/ks2002br/input/Teclado.java new file mode 100644 index 0000000..82c9319 --- /dev/null +++ b/src/com/ks2002br/input/Teclado.java @@ -0,0 +1,51 @@ +package com.ks2002br.input; + +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +import com.ks2002br.frameworks.GameController; +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; + +public class Teclado extends KeyAdapter { + + GameController gc; + + public Teclado(GameController gc) { + this.gc = gc; + } + + public void keyPressed(KeyEvent e) { + int tecla = e.getKeyCode(); + + for (int i = 0; i < gc.obj.size(); i++) { + + GameObject objTemp = gc.obj.get(i); + + if (objTemp.getId() == ObjectId.PLAYER) { + if (tecla == KeyEvent.VK_D) objTemp.setSpdX(5); + if (tecla == KeyEvent.VK_A) objTemp.setSpdX(-5); + if (tecla == KeyEvent.VK_W) objTemp.setSpdY(-5); + if (tecla == KeyEvent.VK_S) objTemp.setSpdY(5); + } + + } + + } + + public void keyReleased(KeyEvent e) { + int tecla = e.getKeyCode(); + + for (int i = 0; i < gc.obj.size(); i++) { + GameObject objTemp = gc.obj.get(i); + if (objTemp.getId() == ObjectId.PLAYER){ + if (tecla == KeyEvent.VK_D) objTemp.setSpdX(0); + if (tecla == KeyEvent.VK_A) objTemp.setSpdX(0); + if (tecla == KeyEvent.VK_W) objTemp.setSpdY(0); + if (tecla == KeyEvent.VK_S) objTemp.setSpdY(0); + } + + } + } + +}