Archer attacks with a chance of 5% per move

master
GammelJan 6 years ago
parent d064d8d208
commit 034ce9f712

@ -25,7 +25,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Entity[] e; Entity[] e;
Timer t; Timer t;
GameScreen m; GameScreen m;
Archer a;
int[] tile; int[] tile;
int[] posRoom; int[] posRoom;
int level; int level;
@ -34,6 +33,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override @Override
public void create(){ public void create(){
//TEST
//TEST
roomX = 8; roomX = 8;
roomY = 6; roomY = 6;
@ -79,7 +82,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Gdx.input.setInputProcessor(this); Gdx.input.setInputProcessor(this);
t = new Timer(); t = new Timer();
a = new Archer(0,0,0);
t.scheduleTask(new Timer.Task() { t.scheduleTask(new Timer.Task() {
@Override @Override
@ -87,6 +89,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
for(int i = 0; i< e.length; i++){ for(int i = 0; i< e.length; i++){
if(e[i] == null){} if(e[i] == null){}
else{ 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()); e[i].rdmMove(d.getPlayer().getxPos(), d.getPlayer().getyPos());
m.setPlayerSpriteX(d.getPlayer().getxPos()); m.setPlayerSpriteX(d.getPlayer().getxPos());
m.setPlayerSpriteY(d.getPlayer().getyPos()); m.setPlayerSpriteY(d.getPlayer().getyPos());
@ -247,7 +252,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
else if(v.click() == 0){ else if(v.click() == 0){
v = null; v = null;
m = new GameScreen(d); m = new GameScreen(d);
Archer a = new Archer(0,0,0);
newEntity(a,0,0,0);
System.out.println("NICE"); System.out.println("NICE");
} }
} }

@ -41,10 +41,11 @@ public abstract class Entity {
} }
public void rdmMove(float xPlayer, float yPlayer){ public void rdmMove(float xPlayer, float yPlayer){
if(xPlayer == xPos){ //PLAYER auf X-Achse von Archer if(xPlayer == xPos){ //PLAYER auf X-Achse von Archer
if(yPlayer == yPos){} // //PLAYER pos = Archer pos if(yPlayer == yPos){} // //PLAYER pos = Archer pos
else if(yPlayer > yPos){movementY = -1f;} // //PLAYER ueber Archer 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 unter Archer
} // } //
else if(yPlayer == yPos){ //PLAYER auf Y-Achse von Archer else if(yPlayer == yPos){ //PLAYER auf Y-Achse von Archer
if(xPlayer == xPos){} // //PLAYER pos = Archer pos 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 public int direction(){ // returns direction the entity is facing depending on its movement
if(movementX < 0f){ // TIS IS SHIT - NEED REWORK if(movementX < 0f){ // TIS IS SHIT - NEED REWORK

@ -13,6 +13,7 @@ import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.Entity;
import com.dungeoncrawler.model.entities.*; import com.dungeoncrawler.model.entities.*;
import com.badlogic.gdx.utils.Timer;
public class GameScreen { public class GameScreen {
//PLAYER //PLAYER
@ -25,6 +26,11 @@ public class GameScreen {
Sprite[] entitySprites; Sprite[] entitySprites;
TextureRegion[][] archerRegions; TextureRegion[][] archerRegions;
Texture archerTexture; Texture archerTexture;
TextureRegion[][] swordsmanRegions;
Texture swordsmanTexture;
Texture[] arrowTextures;
Sprite[] arrowSprites;
//MAP //MAP
Map m; Map m;
@ -45,6 +51,10 @@ public class GameScreen {
entityTextures = new Texture[5]; entityTextures = new Texture[5];
entitySprites = new Sprite[5]; entitySprites = new Sprite[5];
arrowTextures = new Texture[10];
arrowSprites = new Sprite[10];
//Timer[] arrows = new Timer[10];
//MAP //MAP
float w = Gdx.graphics.getWidth(); float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight(); float h = Gdx.graphics.getHeight();
@ -144,18 +154,28 @@ public class GameScreen {
public void newEntity(int i,Entity e, int x, int y){ public void newEntity(int i,Entity e, int x, int y){
if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman
entityTextures[i] = new Texture("archer.png"); entityTextures[i] = new Texture("archer.png");
archerRegions = TextureRegion.split(entityTextures[i], 64, 64);
entitySprites[i] = new Sprite(archerRegions[0][2]); entitySprites[i] = new Sprite(archerRegions[0][2]);
entitySprites[i].setX(x); entitySprites[i].setX(x);
entitySprites[i].setY(y); entitySprites[i].setY(y);
} }
else if(e.getId() == 1){ else if(e.getId() == 1){
entityTextures[i] = new Texture("Swordsman.png"); 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] = new Sprite(entityTextures[i]);
entitySprites[i].setX(x); entitySprites[i].setX(x);
entitySprites[i].setY(y); entitySprites[i].setY(y);
} }
} }
public void arrow(int direction, float x, float y){
System.out.println("ATTACK");
}
//GETTER //GETTER
public float getPlayerSpriteX(){ public float getPlayerSpriteX(){
return player.getX(); return player.getX();

Loading…
Cancel
Save