From 034ce9f7121505e73705e027ce7ec398bd52181e Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 9 Apr 2020 12:16:57 +0200 Subject: [PATCH] Archer attacks with a chance of 5% per move --- .../dungeoncrawler/control/Controller.java | 12 ++++++++--- core/src/com/dungeoncrawler/model/Entity.java | 13 +++++++++--- .../com/dungeoncrawler/view/GameScreen.java | 20 +++++++++++++++++++ 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 099a697..3de2d10 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -25,7 +25,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Entity[] e; Timer t; GameScreen m; - Archer a; int[] tile; int[] posRoom; int level; @@ -34,6 +33,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void create(){ + //TEST + + //TEST + roomX = 8; roomY = 6; @@ -79,7 +82,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Gdx.input.setInputProcessor(this); t = new Timer(); - a = new Archer(0,0,0); t.scheduleTask(new Timer.Task() { @Override @@ -87,6 +89,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ for(int i = 0; i< e.length; i++){ if(e[i] == null){} else{ + if(Math.random() < 0.05){ + m.arrow(e[i].direction(), e[i].getxPos(), e[i].getyPos()); + } e[i].rdmMove(d.getPlayer().getxPos(), d.getPlayer().getyPos()); m.setPlayerSpriteX(d.getPlayer().getxPos()); m.setPlayerSpriteY(d.getPlayer().getyPos()); @@ -247,7 +252,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ else if(v.click() == 0){ v = null; m = new GameScreen(d); - + Archer a = new Archer(0,0,0); + newEntity(a,0,0,0); System.out.println("NICE"); } } diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index de6eefc..d5b9559 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -41,10 +41,11 @@ public abstract class Entity { } public void rdmMove(float xPlayer, float yPlayer){ + if(xPlayer == xPos){ //PLAYER auf X-Achse von Archer if(yPlayer == yPos){} // //PLAYER pos = Archer pos - else if(yPlayer > yPos){movementY = -1f;} // //PLAYER ueber Archer - else if(yPlayer < yPos){movementY = 1f;} // //PLAYER unter Archer + else if(yPlayer > yPos){movementY = 1f;} // //PLAYER ueber Archer + else if(yPlayer < yPos){movementY = -1f;} // //PLAYER unter Archer } // else if(yPlayer == yPos){ //PLAYER auf Y-Achse von Archer if(xPlayer == xPos){} // //PLAYER pos = Archer pos @@ -87,10 +88,16 @@ public abstract class Entity { } //////////// } } + if(yPos + movementY < 0){ - move(); + } + else if(xPos + movementX < 0){ } + else{ + move(); + } + } public int direction(){ // returns direction the entity is facing depending on its movement if(movementX < 0f){ // TIS IS SHIT - NEED REWORK diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index eebff22..f86fc29 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -13,6 +13,7 @@ import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.entities.*; +import com.badlogic.gdx.utils.Timer; public class GameScreen { //PLAYER @@ -25,6 +26,11 @@ public class GameScreen { Sprite[] entitySprites; TextureRegion[][] archerRegions; Texture archerTexture; + TextureRegion[][] swordsmanRegions; + Texture swordsmanTexture; + + Texture[] arrowTextures; + Sprite[] arrowSprites; //MAP Map m; @@ -45,6 +51,10 @@ public class GameScreen { entityTextures = new Texture[5]; entitySprites = new Sprite[5]; + arrowTextures = new Texture[10]; + arrowSprites = new Sprite[10]; + //Timer[] arrows = new Timer[10]; + //MAP float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); @@ -144,18 +154,28 @@ public class GameScreen { public void newEntity(int i,Entity e, int x, int y){ if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman entityTextures[i] = new Texture("archer.png"); + archerRegions = TextureRegion.split(entityTextures[i], 64, 64); entitySprites[i] = new Sprite(archerRegions[0][2]); entitySprites[i].setX(x); entitySprites[i].setY(y); } else if(e.getId() == 1){ entityTextures[i] = new Texture("Swordsman.png"); + swordsmanRegions = TextureRegion.split(entityTextures[i], 64, 64); + entitySprites[i] = new Sprite(swordsmanRegions[0][2]); entitySprites[i] = new Sprite(entityTextures[i]); entitySprites[i].setX(x); entitySprites[i].setY(y); } } + + public void arrow(int direction, float x, float y){ + + + System.out.println("ATTACK"); + } + //GETTER public float getPlayerSpriteX(){ return player.getX();