From 2ff60031b8789f3b1e137e06697096f1df5ba103 Mon Sep 17 00:00:00 2001 From: Elisandro Rodrigues Date: Thu, 23 Dec 2021 20:17:20 -0300 Subject: [PATCH] Criando itens coletaveis --- res/itens_tex.png | Bin 0 -> 1268 bytes res/mapa-01.png | Bin 311 -> 420 bytes src/com/ks2002br/entities/itens/Ammo.java | 38 +++++++++++++++++++ src/com/ks2002br/entities/itens/Gun.java | 37 ++++++++++++++++++ src/com/ks2002br/entities/itens/Key.java | 37 ++++++++++++++++++ src/com/ks2002br/entities/itens/KeyCard.java | 38 +++++++++++++++++++ src/com/ks2002br/entities/itens/Medkit.java | 36 ++++++++++++++++++ src/com/ks2002br/entities/itens/Potion.java | 36 ++++++++++++++++++ src/com/ks2002br/frameworks/GameObject.java | 17 +++++++++ src/com/ks2002br/frameworks/ObjectId.java | 3 +- src/com/ks2002br/game/Game.java | 2 +- src/com/ks2002br/graficos/Texturas.java | 19 +++++++++- src/com/ks2002br/world/World.java | 25 ++++++++++++ 13 files changed, 284 insertions(+), 4 deletions(-) create mode 100644 res/itens_tex.png create mode 100644 src/com/ks2002br/entities/itens/Ammo.java create mode 100644 src/com/ks2002br/entities/itens/Gun.java create mode 100644 src/com/ks2002br/entities/itens/Key.java create mode 100644 src/com/ks2002br/entities/itens/KeyCard.java create mode 100644 src/com/ks2002br/entities/itens/Medkit.java create mode 100644 src/com/ks2002br/entities/itens/Potion.java diff --git a/res/itens_tex.png b/res/itens_tex.png new file mode 100644 index 0000000000000000000000000000000000000000..1e912f6c8ae5790c1562960769ca148a59d711ed GIT binary patch literal 1268 zcma)*drVVz6vuzPaHS7h}(IChR20Dz)fa2(Yy1_i)QAI*sn%67a{79H+iy@VUr zAL1{lajcopC(Tc0DU>hM0d>K;`+lxVz2SPPv9;)ko` zKZwPw&|wrC>?&{aRJwH43Mj8&%0X;!io{IeE)Lj(V~-+jqam1GrC;G@_Rz_rt>{7i zB^9{nwRfp8k;{bcq=}+H<=!h0>uf7Q(GrNBCA-PyRNAzw&<(0@Ev#F1)66x0X+p0p z7je?L1MuN%>vfxEU1!~%dG#~O$|di6@i zUlK_}?*;lYdqqjmDHp^tQy)O@E~PQ%Ej%j!<*V6L82SaBxRL7?3RT=D?lQS!ip$78 zhg_|R!eK(R94s!+oX}=2RZZN3C~TZVOTnRthgrYE&9J96HON@T!C!y5hjB(Nc$8%4 z(^H4wZWj2LlMh|cMndNyQjJEICBy;*aDz4o9#Cve&4PFiEdQ@vdY>1OvO5>ucSar% z5NsmKc-FG*N56;h1AnZdKf`_SU$UGb9Iu|7?)!;_oxZ!yWibVs?p_2hsp_4meW!y* zOJn&d-p_M4hA;iQy6?DMt^M1+Vgt!czHIppt>4_-9-wL2-Mv(p!sdezb@9}6o;Hiw zk{rx{lHQ~+T&N|wP;4w!Tju;!uQYUWGjcAflDbF9l!p9&MIjY7d5z zW&a-4g^7+2X20F8RTG6+h?nW}CDJin#V0018~#mLa`P=V*~KV7Q@8r^QBzeX@=RZD zPvPBWnoK)jX?9pgSsNIkr)7Jk3&5HRI_^nwwFp%DZrpXihb4AD+A$O}qAKtClLU|z?XXC;YlAN7F?Gea3-WF=}S483!o)xQ4XU@bDI5Nm-DyjxwQLg{Q z87t7{9k};_2stzxp6*|dEsK^q#>$++KP%%9Ys7Eg%g-|$)fsc`>0Z79D7NKpUHg7> zM7(irzG2^!j0(cPXM|9%Ly0xE6&G&mKcSIeJ(J-c1+lXV!k#`8h9sIQm#m;myk||f)pwO>_%)r2R5QG_bOw4`@6kOry;uzv_{Ou%1z7_=@SMNOzvlr#0=Ph`7a?gLa zRm{0O6Hn%(9gd&ysdmd0uJcMw=Cvw8i!$ahJFvWCI5DSjY0Y{UMhBg8=De(81$B{+ zsxhg;=Y1KnmGmSTnwU5eR#e^5OB8&*JR{^=*L{YUdC$C;9p~AX$a-!ii*5V$hDD!~ zmUq83KX4@bt&--3>@D%PixX%5+FUVpe|D5~Alr(?j64Yp%n}FYGcIB-tmx4HxT;_! P(9sN@u6{1-oD!M obj) { + } + + @Override + public void render(Graphics g) { + + if(type == 1) g.drawImage(tex.item[5], (int) x, (int) y, null); + if(type == 2) g.drawImage(tex.item[6], (int) x, (int) y, null); + + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/entities/itens/Gun.java b/src/com/ks2002br/entities/itens/Gun.java new file mode 100644 index 0000000..9d23f4b --- /dev/null +++ b/src/com/ks2002br/entities/itens/Gun.java @@ -0,0 +1,37 @@ +package com.ks2002br.entities.itens; + +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.LinkedList; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; +import com.ks2002br.game.Game; +import com.ks2002br.graficos.Texturas; + +public class Gun extends GameObject { + + private Texturas tex = Game.getInstance(); + + public Gun(float x, float y, int type, ObjectId id) { + super(x, y, type, id); + } + + @Override + public void tick(LinkedList obj) { + } + + @Override + public void render(Graphics g) { + + if(type == 1) g.drawImage(tex.item[4], (int) x, (int) y,null); + + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/entities/itens/Key.java b/src/com/ks2002br/entities/itens/Key.java new file mode 100644 index 0000000..2bf1658 --- /dev/null +++ b/src/com/ks2002br/entities/itens/Key.java @@ -0,0 +1,37 @@ +package com.ks2002br.entities.itens; + +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.LinkedList; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; +import com.ks2002br.game.Game; +import com.ks2002br.graficos.Texturas; + +public class Key extends GameObject { + + private Texturas tex = Game.getInstance(); + + public Key(float x, float y, ObjectId id) { + super(x, y, id); + } + + @Override + public void tick(LinkedList obj) { + } + + @Override + public void render(Graphics g) { + + g.drawImage(tex.item[7], (int) x, (int) y,null); + + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/entities/itens/KeyCard.java b/src/com/ks2002br/entities/itens/KeyCard.java new file mode 100644 index 0000000..d115a33 --- /dev/null +++ b/src/com/ks2002br/entities/itens/KeyCard.java @@ -0,0 +1,38 @@ +package com.ks2002br.entities.itens; + +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.LinkedList; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; +import com.ks2002br.game.Game; +import com.ks2002br.graficos.Texturas; + +public class KeyCard extends GameObject { + + private Texturas tex = Game.getInstance(); + + public KeyCard(float x, float y, int type, ObjectId id) { + super(x, y, type, id); + } + + @Override + public void tick(LinkedList obj) { + } + + @Override + public void render(Graphics g) { + + if(type == 1) g.drawImage(tex.item[8], (int) x, (int) y, null); + if(type == 2) g.drawImage(tex.item[9], (int) x, (int) y, null); + + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/entities/itens/Medkit.java b/src/com/ks2002br/entities/itens/Medkit.java new file mode 100644 index 0000000..598eaca --- /dev/null +++ b/src/com/ks2002br/entities/itens/Medkit.java @@ -0,0 +1,36 @@ +package com.ks2002br.entities.itens; + +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.LinkedList; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; +import com.ks2002br.game.Game; +import com.ks2002br.graficos.Texturas; + +public class Medkit extends GameObject { + + private Texturas tex = Game.getInstance(); + + public Medkit(float x, float y, int type, ObjectId id) { + super(x, y, type, id); + } + + @Override + public void tick(LinkedList obj) { + } + + @Override + public void render(Graphics g) { + if(type == 1) g.drawImage(tex.item[0], (int) x, (int) y,null); + if(type == 2) g.drawImage(tex.item[1], (int) x, (int) y,null); + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/entities/itens/Potion.java b/src/com/ks2002br/entities/itens/Potion.java new file mode 100644 index 0000000..0a45058 --- /dev/null +++ b/src/com/ks2002br/entities/itens/Potion.java @@ -0,0 +1,36 @@ +package com.ks2002br.entities.itens; + +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.LinkedList; + +import com.ks2002br.frameworks.GameObject; +import com.ks2002br.frameworks.ObjectId; +import com.ks2002br.game.Game; +import com.ks2002br.graficos.Texturas; + +public class Potion extends GameObject { + + private Texturas tex = Game.getInstance(); + + public Potion(float x, float y, int type, ObjectId id) { + super(x, y, type, id); + } + + @Override + public void tick(LinkedList obj) { + } + + @Override + public void render(Graphics g) { + if(type == 1) g.drawImage(tex.item[2], (int) x, (int) y,null); + if(type == 2) g.drawImage(tex.item[3], (int) x, (int) y,null); + } + + @Override + public Rectangle getBounds() { + + return new Rectangle((int) x, (int) y, 32, 32); + } + +} diff --git a/src/com/ks2002br/frameworks/GameObject.java b/src/com/ks2002br/frameworks/GameObject.java index 0740d93..e89b181 100644 --- a/src/com/ks2002br/frameworks/GameObject.java +++ b/src/com/ks2002br/frameworks/GameObject.java @@ -15,6 +15,8 @@ public abstract class GameObject { protected boolean falling = true; //CAINDO protected boolean jumping = false; // PULO + + protected int type; // construtor public GameObject(float x, float y, ObjectId id) { @@ -22,6 +24,13 @@ public GameObject(float x, float y, ObjectId id) { this.y = y; this.id = id; } + + public GameObject(float x, float y, int type, ObjectId id) { + this.x = x; + this.y = y; + this.type = type; + this.id = id; + } public abstract void tick(LinkedList obj); @@ -84,6 +93,14 @@ public boolean isJumping() { public void setJumping(boolean jumping) { this.jumping = jumping; } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } diff --git a/src/com/ks2002br/frameworks/ObjectId.java b/src/com/ks2002br/frameworks/ObjectId.java index 17a0ca5..b019282 100644 --- a/src/com/ks2002br/frameworks/ObjectId.java +++ b/src/com/ks2002br/frameworks/ObjectId.java @@ -4,6 +4,7 @@ */ public enum ObjectId { - PLAYER, ENEMY, ARMA, BALA, SOLIDO, BLOCO; + PLAYER, ENEMY, GUN, AMMO, SOLIDO, BLOCO, + MEDKIT,POTION,KEY,KEY_CARD, BOX_AMMO; } diff --git a/src/com/ks2002br/game/Game.java b/src/com/ks2002br/game/Game.java index f7616f0..4fb59ae 100644 --- a/src/com/ks2002br/game/Game.java +++ b/src/com/ks2002br/game/Game.java @@ -146,7 +146,7 @@ private void render() { Graphics g = image.getGraphics(); // RENDER DO GAME - PINTANDO A TELA DE FUNCO - g.setColor(new Color(0, 0, 0)); + g.setColor(new Color(80,158,216)); g.fillRect(0, 0, LARGURA, ALTURA); g = bs.getDrawGraphics(); g.drawImage(image, 0, 0, LARGURA * ESCALA, ALTURA * ESCALA, null); diff --git a/src/com/ks2002br/graficos/Texturas.java b/src/com/ks2002br/graficos/Texturas.java index dcc50a4..aa1b779 100644 --- a/src/com/ks2002br/graficos/Texturas.java +++ b/src/com/ks2002br/graficos/Texturas.java @@ -5,10 +5,10 @@ public class Texturas { private FolhaSprites blockSheet, enemySheet, playerSheet; //Instancia/referencia - private FolhaSprites batSheet; + private FolhaSprites batSheet, itemSheet; private BufferedImage bloco_tex, enemy_tex, player_tex; - private BufferedImage bat_tex; + private BufferedImage bat_tex, item_tex; public BufferedImage[] block = new BufferedImage[4]; //SPRITES DOS BLOCOS public BufferedImage[] enemy = new BufferedImage[2]; //SPRITES DOS BLOCOS @@ -20,6 +20,7 @@ public class Texturas { public BufferedImage[] playerRight = new BufferedImage[8]; // SPRITES DO PLAYER DIREITA public BufferedImage[] bat_idle = new BufferedImage[4]; + public BufferedImage[] item = new BufferedImage[10]; public Texturas() { CarregarImagem loader = new CarregarImagem(); @@ -29,6 +30,7 @@ public Texturas() { enemy_tex = loader.pegarImagem("/enemy_tex.png "); player_tex = loader.pegarImagem("/player_tex.png "); bat_tex = loader.pegarImagem("/bat_tex.png "); + item_tex = loader.pegarImagem("/itens_tex.png "); System.out.println("[DEBUG TEXTURA] TEXTURAS CARREGADAS COM SUCESSO!"); } catch (Exception e) { @@ -39,6 +41,7 @@ public Texturas() { enemySheet = new FolhaSprites(enemy_tex); playerSheet = new FolhaSprites(player_tex); batSheet = new FolhaSprites(bat_tex); + itemSheet = new FolhaSprites(item_tex); getTextures(); @@ -85,6 +88,18 @@ private void getTextures() { bat_idle[i] = batSheet.pegarSpriteColRow(i+1, 1, 32, 32); } + // ITENS COLETAVEIS + item[0] = itemSheet.pegarSpritePosXPosY( 0, 0, 32, 32); // MEDKIT GRANDE + item[1] = itemSheet.pegarSpritePosXPosY( 32, 0, 32, 32); // MEDKIT PEQUENO + item[2] = itemSheet.pegarSpritePosXPosY( 64, 0, 32, 32); // POCAO VERMELHA + item[3] = itemSheet.pegarSpritePosXPosY( 96, 0, 32, 32); // POCAO AZUL + item[4] = itemSheet.pegarSpritePosXPosY( 0, 32, 32, 32); // ARMA + item[5] = itemSheet.pegarSpritePosXPosY( 32, 32, 32, 32); // CAIXA MUNICAO + item[6] = itemSheet.pegarSpritePosXPosY( 64, 32, 32, 32); // MUNICAO + item[7] = itemSheet.pegarSpritePosXPosY( 96, 32, 32, 32); // CHAVE + item[8] = itemSheet.pegarSpritePosXPosY( 0, 64, 32, 32); // KEYCARD RED + item[9] = itemSheet.pegarSpritePosXPosY( 32, 64, 32, 32); // KEYCARD YELLOW + } //94 diff --git a/src/com/ks2002br/world/World.java b/src/com/ks2002br/world/World.java index ef7dd33..5bf9923 100644 --- a/src/com/ks2002br/world/World.java +++ b/src/com/ks2002br/world/World.java @@ -4,6 +4,12 @@ import com.ks2002br.entities.Enemy; import com.ks2002br.entities.Player; +import com.ks2002br.entities.itens.Ammo; +import com.ks2002br.entities.itens.Gun; +import com.ks2002br.entities.itens.Key; +import com.ks2002br.entities.itens.KeyCard; +import com.ks2002br.entities.itens.Medkit; +import com.ks2002br.entities.itens.Potion; import com.ks2002br.frameworks.Bloco; import com.ks2002br.frameworks.GameController; import com.ks2002br.frameworks.ObjectId; @@ -37,6 +43,25 @@ public void carregarLevel() { else if(pixel == 0xFFFF6A00 )Game.gc.addObj(new Enemy(xx*32,yy*32,0,ObjectId.ENEMY)); //INIMIGO else if(pixel == 0xFF0026FF)Game.gc.addObj(new Enemy(xx*32,yy*32,1,ObjectId.ENEMY)); + + +//Criando os itens + + + else if(pixel == 0xFF0028FF)Game.gc.addObj(new Medkit(xx*32,yy*32,1,ObjectId.MEDKIT)); + else if(pixel == 0xFF002CFF)Game.gc.addObj(new Medkit(xx*32,yy*32,2,ObjectId.MEDKIT)); + + else if(pixel == 0xFF0032FF)Game.gc.addObj(new Potion(xx*32,yy*32,1,ObjectId.POTION)); + else if(pixel == 0xFF003AFF)Game.gc.addObj(new Potion(xx*32,yy*32,2,ObjectId.POTION)); + + else if(pixel == 0xFF0040FF)Game.gc.addObj(new Gun(xx*32,yy*32,1,ObjectId.GUN)); + else if(pixel == 0xFF0046FF)Game.gc.addObj(new Ammo(xx*32,yy*32,2,ObjectId.BOX_AMMO)); + else if(pixel == 0xFF0050FF)Game.gc.addObj(new Ammo(xx*32,yy*32,1,ObjectId.AMMO)); + + else if(pixel == 0xFF005AFF)Game.gc.addObj(new Key(xx*32,yy*32,ObjectId.KEY)); + else if(pixel == 0xFF0062FF)Game.gc.addObj(new KeyCard(xx*32,yy*32,1,ObjectId.KEY_CARD)); + else if(pixel == 0xFF006EFF)Game.gc.addObj(new KeyCard(xx*32,yy*32,2,ObjectId.KEY_CARD)); + } }