From 70c8a3945db8936fcdd430b22e4ccea2eb648d22 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Tue, 28 Apr 2020 23:11:00 +0200 Subject: [PATCH] cooler Merge --- core/assets/sprites/healingPotion.png | Bin 0 -> 466 bytes core/assets/sprites/hud.png | Bin 9986 -> 7767 bytes core/assets/sprites/itemTest.png | Bin 0 -> 690 bytes core/assets/sprites/key.png | Bin 0 -> 763 bytes core/assets/sprites/torch.png | Bin 7715 -> 8440 bytes .../dungeoncrawler/control/Controller.java | 64 +++++++++- .../com/dungeoncrawler/model/Inventory.java | 10 ++ .../dungeoncrawler/model/entities/Player.java | 3 + .../com/dungeoncrawler/view/GameScreen.java | 113 +++++++++++++++++- 9 files changed, 182 insertions(+), 8 deletions(-) create mode 100644 core/assets/sprites/healingPotion.png create mode 100644 core/assets/sprites/itemTest.png create mode 100644 core/assets/sprites/key.png diff --git a/core/assets/sprites/healingPotion.png b/core/assets/sprites/healingPotion.png new file mode 100644 index 0000000000000000000000000000000000000000..de1c7346c61d6cab37f4f2133a7f6c485bc5e9a4 GIT binary patch literal 466 zcmV;@0WJQCP)L0fO^%((d}ESo$~1cIN$-mbDDqNo7r2eK{v_Zc(dpx znP~|CgEi=6{D5&(p89AOu_YIW#6b_habrPmp?n(UJOqHpcbutmmVN9EFHhI!wd147t@=l^1!ONTf(Ff=KTrfCg!S(2KMHL5k9g z(jvWxh?Iy(iF9~J$N0y8zkBZ(??D(V?3}Z+_gZVOHRn7r`nnJ3X*g*>AP_xNTadq1&6<)ifd^egk zMn79DI#yQmQryG*`b!qxlFfUxD2M=9A~EdA`}axRWiR9EsxDTA@g9(T{kB%Pc1`f? z2Dm3nUBb5#Y!WQhg&sz3xXU(v2cyHcJmUPC4Gc?V}S?yUlhct02@;Y28m(q7y&7&MYS-wfvOlbJoZ_6=ME()(2r{hl)6i5yS zQA;6VFJgo%MZgpW^*qnE8K%z!ngu-5-}lvoim*mwc}^If`#xbU63Q-oNVgVHQ;`JY zeM<`=WDtX0%|Ehq?9*A5B0?HShMuR|xIIbX&vU!d)b#Yp*j4xD3v`Nbw8TtmQcTR(sP*j&6_dG;JsSnb);o=(mO z#D&6M>%o1{`Jdms*5Wi^gxX!h{22%&!T;xv#1Et70}N7nL3Pw9zmajV$Z*_Nd-Vz! zy6mN9=B4U}KsY}20;zgB+IcxT@cP2NoOvHWb@WYNTx17+r*TaqPr-+K@u}QfoTL={A>rh39lyv#9*E?oK zc8SE5Ip#B^C&xAvn!{ISaz+aGxP3*Lj9}>%R@&E4vWd5Se-hrDJ_>T{jbRy{^>u3F z>916Hr1z+L2t7pS{LEmrZ!caxZ;}FJF0i;2)!H4}|4i%~?Y=V)9nmH8xE0`y7 z8F`-^#7Cw*eqTBZQz5{Vg5M9eYI5g$J`~-?q|zZt=Wy$?2AB`??GnGZ8WoAoI4`Da zZf*{}8m|>{hfb9>POYg*%N(jDC`EUn)QARGW&8W&8VrLJW{Z23n;W$(OVycdnq04K zG!9{kRVS=N7c!wS-PTzVBa~E7aI(#BEJ#VI%{V{Y#!9=d?QX{MO#DJ7mfrjM2%QUdWN51^$}P&pC7EK}o;^Q&Sw+ zr}H>Z^!Hu=DJ*w;pas~aJ_uNM7;k9i5%og^`AO!o2bO?CdXdZe{o)1goc_g^2`ewm zaJ2ULSUx=;S4Hsft%7qhp7HRW*RJh{@#YnZ3KOcVTR4xv#jxtaQ5xlPA@NAN4lH5~ zcd=6vSm76i7b;8E_j10A+>5fui!NEw=IPn}GIs zd}jE7AY#Q#lCvUnkn`hNf%5=^h@87xeuk0-7+SEMwCca@03Ce2VmRnoQ6}NXO6ZNl@&JTyT)%jvA zB9Y8FtM5IyG{Efhjk}-jZhc|NJs{hJGZpJ*hrv-J5c;+)8CUU^M?EE@XD{u4?}yfr zfWDrV0Ux84#W#NPLko1YX0eEZ60ONKC)OYQBQIO>kiebd?bbzEF}kzx!oqBD8Hzj% zOvU$g*1@mEi{OYTEabjkRs;{-&0Xu>=L&P1*#~Kbfdd zc5`#HT=>q+&FK4c?he;op9+45%_eWWy2i}pWK>(5A}bAfQ`Kxn+JLL{6`m_I)U`YH zk)j%MGBQ!GUtea8>&BKxRT0cu1EhfSa#!6X7T2M5qc!|{Ts4 z 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 NR89AOmCD1g{{cwS<2nEU literal 9986 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 diff --git a/core/assets/sprites/itemTest.png b/core/assets/sprites/itemTest.png new file mode 100644 index 0000000000000000000000000000000000000000..7046e46cc41f679b3c37019a295259e82a5ca9d8 GIT binary patch literal 690 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Ft%hmI|q0=J1Z0v<)>xlq%tsQ zOst(~>v7mY=4iaV%fzl`Nf)h@6@Fqzx-7gzyAu{}5sfM}*!hKfmWhg{USCu8!Grxr zS2cHUUdOktN#O_MqbDzxyiij8r?0uCYduW=lowwwkb^~8RmP~94|SnbWdU4%`GM8 zejj1d_U8I%`LV@OT&3>Gt~Z~gpHDhmH&0XI<` zcdjY8_h?Pn>ov9h{|*H>MxQL0n%$%#xRe~&7CsB^nNg}p7W@t^7T?cePD zyxmEZzkxv|`sLRvEF(l*O+gp}=2Mjn|0wtDy{LBA(QpmJP8r_#G zm-weUel}UATpiL{Y{^^|^76w5mlsN(ShslmXORiEV3Y~IaJcL@lN*;_$8DB5`zFnk z(!Hd_y4O@z;FnZ{?82D~8zTfao#k7%>ju|nCZKKD!Jl;{_S L)z4*}Q$iB}z{?=D literal 0 HcmV?d00001 diff --git a/core/assets/sprites/key.png b/core/assets/sprites/key.png new file mode 100644 index 0000000000000000000000000000000000000000..2376f7f76bc4daeb10e57c95707bcdb7c6f68c5c GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wkP*AeO zHKN2hKQ}iuuY|$5C^fMpHASI3vm`^o-P1Q9ypd0wfq|*R)5S5QV$R!X`}1!(h#cSV zKKqL0Ev>Saf}1*ruFO5EU2m2>jqk2i;FFRL(bI?4H5rJh?Bz*Fo^5?walw&Szjcni zzbE_t_t(En98C(ysN+BTw`;6>#6EH>)jpIGIQmlicih_b7ul9P+PUri4%0=aT8>Et zXxS}nQa zC^Z>s$DJseDSDh?P1nD(MhhB_t=VDH82M3GYuZouQ0I3QmGjrUQZdwSE4U)P^h$&6 z$D4D_y2_vD8tR=6?F}}K+qTx>#r8y=^sV**FSau>RHfH%4bg8*VqBG!`e?_t?$v$T zS1Tsjr8=FuV9lK>zmw7P;Y=o*>Dt`Z7IE8ayYEG+sO`z9R6C}6UgwnL1Yw>9x4SP@ zY}5T2TQhIch5Y?L{t5lceW^2nucSV?BTv8SdC`or1Ml*A7@znuFkI%FQDCAdoO|ow zMg7Q||6hGm3M=Kx`Mt$vy8Ybwxu+u6x}M(BT*7vB9^-*$W}!Xl_kFDsJ}-@nys|K5 zdBKbAN536g?qVUu|M#0P!3DCfwW)Ot=i5u6{1-oD!M<1|3+P literal 0 HcmV?d00001 diff --git a/core/assets/sprites/torch.png b/core/assets/sprites/torch.png index 0aa2c842d98522298cbf1fbcae359ea3ad3c36a5..d4d5dfb2487ce7b88dedea566fe64681a9e072ad 100644 GIT binary patch literal 8440 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 literal 7715 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 Lf2{mq68ygaPM?@F diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index f067451..f505277 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -23,6 +23,10 @@ import com.dungeoncrawler.model.DungeonGenerator; import com.dungeoncrawler.model.entities.*; import com.dungeoncrawler.model.Entity; import com.badlogic.gdx.utils.Timer; +import com.dungeoncrawler.model.Item; +import com.dungeoncrawler.model.items.Key; +import com.dungeoncrawler.model.items.Potion; +import com.dungeoncrawler.model.items.Sword; public class Controller extends ApplicationAdapter implements InputProcessor{ SpriteBatch batch; @@ -117,6 +121,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } } },0,1f); + + } @@ -313,12 +319,60 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ d.setCurrentEntities(m.playerAttack(d.getCurrentEntities(), d.getPlayer(), batch)); } } - /*if(keycode == Input.Keys.F){ + if(keycode == Input.Keys.F){ + if(v != null){} + if(m != null){ + Item k = new Sword(1); + m.addItem(k); + //d.setCurrentItemContainer(m.playerPickUp(d.getCurrentItemContainer(), d.getPlayer())); + } + } + + + if(keycode == Input.Keys.G){ if(v != null){} if(m != null){ - d.setCurrentItemContainer(m.playerPickUp(d.getCurrentItemContainer(), d.getPlayer())); + Item k = new Potion(1); + m.addItem(k); + //d.setCurrentItemContainer(m.playerPickUp(d.getCurrentItemContainer(), d.getPlayer())); } - }*/ + } + if(keycode == Input.Keys.H){ + if(v != null){} + if(m != null){ + Item k = new Key(1); + m.addItem(k); + //d.setCurrentItemContainer(m.playerPickUp(d.getCurrentItemContainer(), d.getPlayer())); + } + } + + if(keycode == Input.Keys.NUM_1){ + m.moveItem(0); + } + if(keycode == Input.Keys.NUM_2){ + m.moveItem(1); + } + if(keycode == Input.Keys.NUM_3){ + m.moveItem(2); + } + if(keycode == Input.Keys.NUM_4){ + m.moveItem(3); + } + if(keycode == Input.Keys.NUM_5){ + m.moveItem(4); + } + if(keycode == Input.Keys.NUM_6){ + m.moveItem(5); + } + if(keycode == Input.Keys.NUM_7){ + m.moveItem(6); + } + if(keycode == Input.Keys.NUM_8){ + m.moveItem(7); + } + + + if(keycode == Input.Keys.UP){ volume += 0.1f; @@ -400,6 +454,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ v.cleanUp(); v = null; m = new GameScreen(d, volume); + + return true; case 1: v.cleanUp(); @@ -411,7 +467,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ return true; } if(m != null){ - + return true; } diff --git a/core/src/com/dungeoncrawler/model/Inventory.java b/core/src/com/dungeoncrawler/model/Inventory.java index 79c605e..961c777 100644 --- a/core/src/com/dungeoncrawler/model/Inventory.java +++ b/core/src/com/dungeoncrawler/model/Inventory.java @@ -5,8 +5,12 @@ public class Inventory { Item items[][]; Item equipped[]; + int width; + int height; public Inventory(int width, int height){ + this.width = width; + this.height = height; items = new Item[width][height]; equipped = new Item[2]; } @@ -44,5 +48,11 @@ public class Inventory { return items[x][y]; } + public int getWidth(){ + return width; + } + public int getHeight(){ + return height; + } } diff --git a/core/src/com/dungeoncrawler/model/entities/Player.java b/core/src/com/dungeoncrawler/model/entities/Player.java index b069463..4e9c7d7 100644 --- a/core/src/com/dungeoncrawler/model/entities/Player.java +++ b/core/src/com/dungeoncrawler/model/entities/Player.java @@ -31,5 +31,8 @@ public class Player extends Entity { public void pickUp(Item item){ inv.addItem(item); } + public Inventory getInv(){ + return inv; + } } diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index 5690415..9357ad1 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -16,6 +16,7 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Timer; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Entity; +import com.dungeoncrawler.model.Item; import com.dungeoncrawler.model.ItemContainer; import com.dungeoncrawler.model.entities.*; import java.util.ArrayList; @@ -56,6 +57,15 @@ public class GameScreen { // Sound public Music music; + //Inventory TEST + Texture HudTexture; + Sprite HudSprite; + Texture[] InventoryItemTextures; + Sprite[] InventoryItemSprites; + float[] invXPos; + float[] invYPos; + + public GameScreen(Dungeon d, float volume) { //CONTROLS /* @@ -89,7 +99,7 @@ public class GameScreen { m = new Map(); camera = new OrthographicCamera(1, h/w); - camera.translate(300f, 200f); + camera.translate(175f, 215f); MapGenerator mg = new MapGenerator(new Texture(Gdx.files.internal("tilesets/haha.png"))); @@ -114,11 +124,42 @@ public class GameScreen { } } },0, 0.1f); - + + //Inventory TEST + HudTexture = new Texture("sprites/HUD.png"); + HudSprite = new Sprite(HudTexture); + HudSprite.setX(-HudSprite.getWidth()); + HudSprite.setY(20f); + InventoryItemTextures = new Texture[8]; + InventoryItemSprites = new Sprite[8]; + invXPos = new float[8]; + invYPos = new float[8]; + //Equipped 1 + invXPos[0] = HudSprite.getX() + 37f; + invYPos[0] = HudSprite.getY() + 112f; + //Equipped 2 + invXPos[1] = HudSprite.getX() + 85f; + invYPos[1] = HudSprite.getY() + 112f; + + invXPos[2] = HudSprite.getX() + 10f; + invYPos[2] = HudSprite.getY() + 61f; + invXPos[3] = HudSprite.getX() + 61f; + invYPos[3] = HudSprite.getY() + 61f; + invXPos[4] = HudSprite.getX() + 112f; + invYPos[4] = HudSprite.getY() + 61f; + + invXPos[5] = HudSprite.getX() + 10f; + invYPos[5] = HudSprite.getY() + 10f; + invXPos[6] = HudSprite.getX() + 61f; + invYPos[6] = HudSprite.getY() + 10f; + invXPos[7] = HudSprite.getX() + 112f; + invYPos[7] = HudSprite.getY() + 10f; + } public void render (SpriteBatch batch, Player p, Entity[] e, Entity[] arrows, int tileX, int tileY, int level, int roomPosX, int roomPosY) { + Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); @@ -183,6 +224,15 @@ public class GameScreen { //BATCH batch.begin(); + HudSprite.draw(batch); + + //DRAWING INVENTORY + for(int i = 0; i < InventoryItemSprites.length ;i++){ + if(InventoryItemSprites[i] != null){ + InventoryItemSprites[i].draw(batch); + } + } + for(AnimatedObject object : objects){ object.getSprite().draw(batch); } @@ -349,6 +399,61 @@ public class GameScreen { } return e; } + + public void moveItem(int i){ + if(i == 0){ + if(InventoryItemSprites[i] != null){ + for(int n = 2; n < InventoryItemSprites.length ; n++){ + if(InventoryItemSprites[n] == null){ + InventoryItemTextures[n] = InventoryItemTextures[i]; + InventoryItemSprites[n] = InventoryItemSprites[i]; + } + } + } + } + } + + + public void addItem(Item item){ + switch(item.getId()){ + case 0: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/key.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + case 1: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/healingPotion.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + case 2: + for(int i = 2; i < InventoryItemSprites.length; i++){ + if(InventoryItemSprites[i] == null){ + //InventoryItemTextures[i] = new Texture("sprites/itemTest.png"); + InventoryItemTextures[i] = new Texture("sprites/sword.png"); + InventoryItemSprites[i] = new Sprite(InventoryItemTextures[i]); + InventoryItemSprites[i].setX(invXPos[i]); + InventoryItemSprites[i].setY(invYPos[i]); + break; + } + } + break; + } + } /* public ItemContainer playerPickUp(ItemContainer[] items, Player p){ for(int i = 0; i < items.length; i++){ @@ -361,9 +466,9 @@ public class GameScreen { } return items; - } - */ + */ + public void cleanUp(){ music.dispose(); }