From b8248eae656f12da7d905331ef77b732b9b4cf32 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Sun, 3 May 2020 20:25:00 +0200 Subject: [PATCH] =?UTF-8?q?fa=C3=B6lkdjsf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/assets/sprites/arrow.png | Bin 644 -> 769 bytes core/src/com/dungeoncrawler/model/Entity.java | 15 +++++++++++++++ .../dungeoncrawler/model/entities/Archer.java | 1 + .../com/dungeoncrawler/view/EntitySprite.java | 14 +++++++------- .../src/com/dungeoncrawler/view/GameScreen.java | 12 +++++++++--- 5 files changed, 32 insertions(+), 10 deletions(-) diff --git a/core/assets/sprites/arrow.png b/core/assets/sprites/arrow.png index e2ebc188b721db2372389033b299dc4a6a5e97b0..c83789753cca1586a20bf51f36d94eff6cfa7262 100644 GIT binary patch delta 744 zcmVCiBL{Q4GJ0x0000DNk~Le0002A000092nGNE0GpWxnE(I*i)lkc zP)A8kP#|J;X>4>YX>K5MQb$4n04R}tkv&MmKpe$iQ%j3fMC>5qkfAzR5G~>;RV;#q z(pG5I!Q|2}XktiGTpR`0f`cE6RRs^dzd7t}p^eIJ? z0X~st?f%Ws^^4huXpV&pPUe#+{JPi zvx=b-$BCnVimFk*kat<(yv13q)mi(V{DtA7ww&cU%@HKAh!oNgA)}5eYOoNaRU^ej zhV~O4{$alp5;|KqP-`$#}sYy2}oB#qZw*4^*1b2Z}!?wSVZM$^> z_@99*t>fQl0yCeaH#%DM2!IDG(e)YZ}raBv8Wl_`78j5K~z|U?bbg^#6T2)@$bzLl}zOcEG)c(osF6 z#3B+{Z(!>&wz0Jk#6LL3%(GaGE~HP2_rbsnJbu*-3|N+BS<6gV1tmCm`i9`P>+V&i zhP$rQ-+fUOyEEpPvj9f`j?RyjTp$NNfE*rgH=jJ|;yjuL4l)_{ad2oF0Jyqd6Jx}Ck8_Tc5;vC@m}Ab|&i3}71tkc)E5roB!~NUj z%V?TLvn&Ik?|aI!{F^h!oS7ZrbWeFv*cXTjhXM~@lSp0H%H9#v5n{4)q=Y0000y|v^ZEn#34gfPgTqgAz0KWM(l7&+&B+AK&j{Jj=W8&k0X4BF+?-NH@SyG74iN_7PAn_yDWtZPLmmC&&X2i&*=ZPc4VyTPeE@ovzC7vdZ zDyl~LLe6D>h4U6?wOVKGd-4~C3ffAB>oiA@z!H*3L4=GtDyYIjjCPF_6KOh+d-#VP ze~Mf(xhi1fSU?RbB*zc_2fur37N;iNq);3Pyx8`~C=lEQS`FL&KDO=F3E+PQuC$K7 z)&yohNpEzt=n>Gr4P0DzGDYDGy0}HFmMa>t+{<`pX2la z$WpJCZ-9eCV5~&h>mKj!?e5#ZHSPZW0R0JacneD`Bme*a24YJ`L;yGdH~=_mXheX-2oVITS-JgR7l5TWFP?EF);kcCojanz=%(tkz9j`wTO{Yg9%y0NKM1BS;9zd z!_h5aVxTc#q=oB|eL;I4(8~2NKyx3AS}mjN0P TJdE#?00000NkvXXu0mjfDdGfQ diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 11b45c5..abda571 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -18,6 +18,7 @@ public abstract class Entity { protected int direction; protected Inventory inv; protected boolean toDelete; + private double angle; @@ -152,5 +153,19 @@ public abstract class Entity { public boolean getToDelete(){ return this.toDelete; } + + /** + * @return the angle + */ + public double getAngle() { + return angle; + } + + /** + * @param angle the angle to set + */ + public void setAngle(double angle) { + this.angle = angle; + } } \ No newline at end of file diff --git a/core/src/com/dungeoncrawler/model/entities/Archer.java b/core/src/com/dungeoncrawler/model/entities/Archer.java index 86f6412..bb1f123 100644 --- a/core/src/com/dungeoncrawler/model/entities/Archer.java +++ b/core/src/com/dungeoncrawler/model/entities/Archer.java @@ -108,6 +108,7 @@ public class Archer extends Entity{ a.setMovementX(movementX); a.setMovementY(movementY); + a.setAngle(alpha); return a; } diff --git a/core/src/com/dungeoncrawler/view/EntitySprite.java b/core/src/com/dungeoncrawler/view/EntitySprite.java index 234a7a2..d68f2a9 100644 --- a/core/src/com/dungeoncrawler/view/EntitySprite.java +++ b/core/src/com/dungeoncrawler/view/EntitySprite.java @@ -27,7 +27,7 @@ public class EntitySprite { // 0: links, 1: rechts private int direction; - public EntitySprite(Texture[] textures){ + public EntitySprite(Texture[] textures, int width, int height){ sprites = new Sprite[1]; regions = new TextureRegion[1][][]; @@ -36,12 +36,12 @@ public class EntitySprite { direction = 0; attackState = 0; - for(int i = 0; i < regions.length; i++){ - regions[i] = TextureRegion.split(textures[i], 64, 64); + for(int i = 0; i < sprites.length; i++){ + regions[i] = TextureRegion.split(textures[i], width, height); sprites[i] = new Sprite(regions[i][0][0]); + collisionSprite = new Rectangle(0, 0, 32, 16); } - - collisionSprite = new Rectangle(0, 0, 32, 16); + fullCollisionSprite = sprites[0].getBoundingRectangle(); } @@ -84,7 +84,7 @@ public class EntitySprite { frames[0]++; } - sprites[0].setRegion(regions[0][0][frames[0]]); + sprites[0].setRegion(regions[0][2][frames[0]]); updateFlip(); } @@ -99,7 +99,7 @@ public class EntitySprite { frames[1]++; } - sprites[0].setRegion(regions[0][2][frames[1]]); + sprites[0].setRegion(regions[0][0][frames[1]]); updateFlip(); } diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index 0db65cf..f9afcf9 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -83,7 +83,7 @@ public class GameScreen { playerTexture[2] = new Texture(Gdx.files.internal("sprites/player.png")); playerTexture[3] = new Texture(Gdx.files.internal("sprites/player.png")); - player = new EntitySprite(playerTexture); + player = new EntitySprite(playerTexture, 64, 64); player.update(200, 200); @@ -279,16 +279,22 @@ public class GameScreen { Texture[] tx = new Texture[1]; if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman || 2 = Arrow tx[0] = new Texture("sprites/archer.png"); + entitySprites[i] = new EntitySprite(tx, 64, 64); } if(e.getId() == 1){ tx[0] = new Texture("sprites/swordsman.png"); + entitySprites[i] = new EntitySprite(tx, 64, 64); } if(e.getId() == 2){ - tx[0] = new Texture("sprites/player.png"); + tx[0] = new Texture("sprites/arrow.png"); + entitySprites[i] = new EntitySprite(tx, 18, 9); } - entitySprites[i] = new EntitySprite(tx); entitySprites[i].update((int) e.getxPos(), (int) e.getyPos()); + + if(e.getId() == 2){ + entitySprites[i].getSprites()[0].setRotation((float) Math.toDegrees(e.getAngle() + Math.PI)); + } } }