From c158ed733a7841366011f108d1afcd3122db7cbc Mon Sep 17 00:00:00 2001 From: GammelJan Date: Tue, 7 Apr 2020 22:00:43 +0200 Subject: [PATCH] perfect --- core/assets/archer.png | Bin 756 -> 1003 bytes .../dungeoncrawler/control/Controller.java | 58 +++++++++++------- core/src/com/dungeoncrawler/model/Entity.java | 16 +++++ core/src/com/dungeoncrawler/view/View.java | 53 +++++++++++----- 4 files changed, 88 insertions(+), 39 deletions(-) diff --git a/core/assets/archer.png b/core/assets/archer.png index a2a0506e9540c29d936467a0333aada5432226c7..f1c0712b084263fce5ce8a8a55b7b742c01df95e 100644 GIT binary patch delta 950 zcmeyu`kGy_Gr-TCmrII^fq{Y7)59f*fq@aoWN_eM1Cn23SMHmrs8rt_B6G{}h@x}p zCIziW8lgH(t(U?wt{!}HNk8M#ge5yHxYn_<+l#H{(>u4zY6n--1NM%|izhGYp7LY= zk_$@5njhEg+5LS-H9N;zso=8*SQcbWo9L-_q$V+xXP;7of>Vd0l3}oas(A4SnfUJ? zK7Q3Zw|UR`zm{xM7M*06?_qPir2eqdJ%xEUx0IaweIzh!qR6A-M}^IL9)C`h-h66) zF14L?o}_8f%*sa^8zbH&?re`d8qm4CGr4P3;Jyjvkq`GAja+LQ@qFH&)`yF>O?ql| zR#0VQi^wGb#l?+USsMhFhbkX+Y5OKD_b>7Ie6{I5>$D^+#RA&7PJV3ufAD?Y*-KZJ z)Xx_2W2n{N_ScY$rM$81^0xi`xw~tbe#~#wUi*6e_J*7OmuAQ6ma*{UF^gZ1^}WZe zSKhEtJ=RFY{nKR;FVzQsd-knlaLH@@XS#j+IXgf32AR^WHOw+HOv$OI;=Wguuh_o5 z{(Q-=-;B;IMN^*t-5&)EdbT8QcNd005bV`fs(1(#;w-PUU^Rr~;BD?62;;d;e|Nh^c7WsNhzg58dxaHv* zJ+BJx#9r-K$9Tb5GQNI#nmE(8BWAa!Em{*hgX8>y#H*XmunBCHIDh`>m(83T3K;5p zrZjy|zxv1Guk?Bb<@Gn#v9Dvwx-P&F$)&*3!eAf6Xk^xt&FJ*Gn^)nt^!h5PTTDMB z7^c2E9cnKv!1U^i8N-~efEwlr-|p!%F|7H|#NgYo?#68+-EevBi-Hvg4~Hne zoq7Mp%wNgp0@CO6OE)~!FBFRUnadEvw4ji~?afqGHv7*#91Mr&7b#4$`?&dB=YJ-N zf6K0Sn@C)%k!H~5JvOWMO7;iib6pGue-87Wo~2&9tx}Mo&Hl>=mzdYaXV35|RX>kp T6k`H9l!3w1)z4*}Q$iB}(?5ko delta 701 zcmV;u0z&=k2lNFYiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPVf2CF& z>>%Qhp*mR*6>*d*7QsSkE41oha_JW|X-HCB90k{cgCC1k2N!2u9b5%L@B_rj(Mi!o zO8j3^Xc6PVaX;SOd)&PPgl3hgW?%wPHOojR;$kkpDh6K>fPg-P5SEy!Co_v#c#f}o z`1pDk<5}M4{v7>E!DN6>B%Wise_;`C5YKE{I_G`j2rEkp@j3ChK^G)`?i4sjut%v2DX8V>y9Sx0hc?#(3371k|X(P z3dJJuen#Jv2L^9}(3;y@dmpC{K$f~%z5xynfw2;0uY0_^x4XB0&$Rpd0qdA@ao&p7 z@Bjb+24YJ`L;(K){{a7>E4`r z0t*Wrk}t=Mlj{K|e*nx$L_t(o!|j*J5`-WOL|@|n|EvqQA#=eh4x%_q!ojZcX8D>X z!~mT#m<_UlT|C)f?)|QGfM0;}nX(Hv{_u4xlBK?N$N?xhI{QGC5d`IKi7H z#1VdILhC(ufCETf6H*y493_RV)lqZR&XkDN*D2_ouJwl$V`g!x{Pu~6ivO||KL#EH zj{#2uk$u1vSOX2L@js(|dJW*`aR!p2%R#Q952!(EqgF00000NkvXXu0mjf*Bds> diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 5e0f610..5067fc7 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -31,17 +31,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void create(){ - a = new Archer(200,200,200); + e = new Entity[5]; batch = new SpriteBatch(); v = new MainMenu(); p = new Player(); d = new Dungeon(p); dg = new DungeonGenerator(); dg.ichWillSpielen(); - e = new Entity[5]; Gdx.input.setInputProcessor(this); t = new Timer(); + a = new Archer(0,0,0); + t.scheduleTask(new Timer.Task() { @Override public void run() { @@ -55,41 +56,51 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ },0,0.1f); } - public void newEntity(Entity ent, int x, int y, int lvl){ - for(int i = 0; i < e.length ; i++){ - if(e[i] == null){ - switch(ent.getId()){ - case 0: - e[i] = new Archer(x,y,lvl); - m.newEntity(i,ent,x,y); - i = 10; - break; - case 1: - e[i] = new Swordsman(x,y,lvl); - m.newEntity(i,ent,x,y); - i = 10; - break; - } - - } - } - } @Override public void render(){ + //PASSIERT IN MAINMENU if(v != null){ v.render(batch, p , e); } - if(v == null){ - m.render(batch, p, a); + //PASSIERT IN GAMESCREEN (view) + if(m != null){ + //ENTITIES + + + + //RENDER + m.render(batch, p, e); + } } + @Override public void dispose () { batch.dispose(); } + public void newEntity(Entity ent, int x, int y, int lvl){ + for(int i = 0; i < e.length ; i++){ + if(e[i] == null){ + switch(ent.getId()){ + case 0: + e[i] = new Archer(x,y,lvl); + m.newEntity(i,ent,x,y); + i = 10; + break; + case 1: + e[i] = new Swordsman(x,y,lvl); + m.newEntity(i,ent,x,y); + i = 10; + break; + } + + } + } + } + @Override public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ @@ -134,6 +145,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ else if(v.click() == 0){ v = null; m = new View(); + newEntity(a, 200, 200, 200); System.out.println("NICE"); } } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 7747d27..eb3b2be 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -59,6 +59,22 @@ public abstract class Entity { } } + public int direction(){ + if(movementX == -3){ + return 3; + } + if(movementX == 3){ + return 1; + } + if(movementY == 3){ + return 0; + } + if(movementY == -3){ + return 2; + } + return -1; + } + public int getxPos() { return xPos; diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 9611f49..a3b7ea2 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -26,6 +26,8 @@ public class View { //ENTITIES Texture[] entityTextures; Sprite[] entitySprites; + TextureRegion[][] archerRegions; + Texture archerTexture; //MAP Map tm; @@ -49,6 +51,9 @@ public class View { //ENTITIES entityTextures = new Texture[5]; entitySprites = new Sprite[5]; + archerTexture = new Texture("archer.png"); + archerRegions = TextureRegion.split(archerTexture, 64, 64); + //MAP @@ -72,9 +77,11 @@ public class View { } - public void render (SpriteBatch batch, Player p, Archer a) { + public void render (SpriteBatch batch, Player p, Entity[] e) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + //PLAYER player.setX(player.getX()+ p.getMovementX()); player.setY(player.getY()+ p.getMovementY()); @@ -92,6 +99,7 @@ public class View { player.setRegion(regions[0][2]); } + //MAP tmr.setView(camera); tmr.render(); camera.zoom = 1000f; @@ -99,22 +107,35 @@ public class View { batch.setProjectionMatrix(camera.combined); + + + //BATCH batch.begin(); player.draw(batch); - if(entitySprites[0] != null){ - entitySprites[0].draw(batch); - } - if(entitySprites[1] != null){ - entitySprites[1].draw(batch); - } - if(entitySprites[2] != null){ - entitySprites[2].draw(batch); - } - if(entitySprites[3] != null){ - entitySprites[3].draw(batch); - } - if(entitySprites[4] != null){ - entitySprites[4].draw(batch); + for(int i = 0; i < e.length; i++){ + + if(entitySprites[i] != null){ + entitySprites[i].setX(e[i].getxPos()); + entitySprites[i].setY(e[i].getyPos()); + switch(e[i].direction()){ + case -1: + break; + case 0: + entitySprites[i].setRegion(archerRegions[0][0]); + break; + case 1: + entitySprites[i].setRegion(archerRegions[0][1]); + break; + case 2: + entitySprites[i].setRegion(archerRegions[0][2]); + break; + case 3: + entitySprites[i].setRegion(archerRegions[0][3]); + break; + + } + entitySprites[i].draw(batch); + } } batch.end(); } @@ -123,7 +144,7 @@ public class View { public void newEntity(int i,Entity e, int x, int y){ if(e.getId() == 0){ entityTextures[i] = new Texture("archer.png"); - entitySprites[i] = new Sprite(entityTextures[i]); + entitySprites[i] = new Sprite(archerRegions[0][2]); entitySprites[i].setX(x); entitySprites[i].setY(y); }