Archer shooting Arrow - !! Archer moves diagonal !!

master
GammelJan 6 years ago
parent ed761caf79
commit 83068d5770

@ -45,9 +45,31 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
t.scheduleTask(new Timer.Task() { t.scheduleTask(new Timer.Task() {
@Override @Override
public void run() { public void run() {
a.rdmMove(); if(p.getxPos() == a.getxPos()){
if(p.getyPos() < a.getyPos()){
a.attack(0); //unten
v.arrow(a,0);
}
if(p.getyPos() > a.getyPos()){
a.attack(1); //oben
v.arrow(a,1);
}
}
else if(p.getyPos() == a.getyPos()){
if(p.getxPos() < a.getxPos()){
a.attack(2); //links
v.arrow(a,2);
}
if(p.getxPos() > a.getxPos()){
a.attack(3); //rechts
v.arrow(a,3);
}
}
else{
a.rdmMove();
}
} }
},0,0.1f); },0,0.5f);
} }
@Override @Override
@ -64,18 +86,22 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean keyDown(int keycode) { public boolean keyDown(int keycode) {
if(keycode == Input.Keys.LEFT){ if(keycode == Input.Keys.LEFT){
p.setMovementX(-3); p.setMovementX(-3);
p.move();
} }
if(keycode == Input.Keys.RIGHT){ if(keycode == Input.Keys.RIGHT){
p.setMovementX(3); p.setMovementX(3);
p.move();
} }
if(keycode == Input.Keys.UP){ if(keycode == Input.Keys.UP){
p.setMovementY(3); p.setMovementY(3);
p.move();
} }
if(keycode == Input.Keys.DOWN){ if(keycode == Input.Keys.DOWN){
p.setMovementY(-3); p.setMovementY(-3);
p.move();
} }
if(keycode == Input.Keys.W){ if(keycode == Input.Keys.W){
@ -87,21 +113,25 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean keyUp(int keycode) { public boolean keyUp(int keycode) {
if(keycode == Input.Keys.LEFT){ if(keycode == Input.Keys.LEFT){
p.setMovementX(0); p.setMovementX(0);
p.move();
v.tlinksstop(); v.tlinksstop();
} }
if(keycode == Input.Keys.RIGHT){ if(keycode == Input.Keys.RIGHT){
p.setMovementX(0); p.setMovementX(0);
p.move();
v.trechtsstop(); v.trechtsstop();
} }
if(keycode == Input.Keys.DOWN){ if(keycode == Input.Keys.DOWN){
p.setMovementY(0); p.setMovementY(0);
p.move();
v.tuntenstop(); v.tuntenstop();
} }
if(keycode == Input.Keys.UP){ if(keycode == Input.Keys.UP){
p.setMovementY(0); p.setMovementY(0);
p.move();
v.tobenstop(); v.tobenstop();
} }
return true; return true;

@ -22,7 +22,11 @@ public abstract class Entity {
public void attack(){ public void attack(int i){
if(i == 0){System.out.println("UNTEN");}
if(i == 1){System.out.println("OBEN");}
if(i == 2){System.out.println("LINKS");}
if(i == 3){System.out.println("RECHTS");}
} }
public void update(){ public void update(){
@ -37,23 +41,30 @@ public abstract class Entity {
} }
public void rdmMove(){ public void rdmMove(){
switch((int) (Math.random() * 5)){ switch((int) (Math.random() * 5)){
case 0: //left case 0: //left
setMovementX(-3); for(int i = 0; i<=32;i++){
move(); setMovementX(-1);
move();
}
break; break;
case 1: //right case 1: //right
setMovementX(3); for(int i = 0; i<=32;i++){
move(); setMovementX(1);
move();
}
break; break;
case 2: //up case 2: //up
setMovementY(3); for(int i = 0; i<=32;i++){
move(); setMovementY(1);
move();
}
break; break;
case 3: //down case 3: //down
setMovementY(-3); for(int i = 0; i<=32;i++){
move(); setMovementY(-1);
move();
}
break; break;
} }
} }

@ -14,7 +14,7 @@ import com.dungeoncrawler.model.Entity;
public class Player extends Entity { public class Player extends Entity {
public Player() { public Player() {
super(0, 0, 1); super(200, 200, 1);
this.maxhp = 5*lvl; this.maxhp = 5*lvl;
this.hp = this.maxhp; this.hp = this.maxhp;

@ -14,7 +14,6 @@ import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell;
import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile;
import com.badlogic.gdx.utils.Timer;
/** /**
* *
* @author jonathan * @author jonathan

@ -25,6 +25,13 @@ public class View {
Timer toben; Timer toben;
Timer tlinks; Timer tlinks;
Timer trechts; Timer trechts;
Texture arrow;
Sprite Arrow;
Timer tArrowLeft = new Timer();
Timer tArrowRight = new Timer();
Timer tArrowUp = new Timer();
Timer tArrowDown = new Timer();
int ArrowTravel = 0;
public View() { public View() {
b = new Texture("Button.png"); b = new Texture("Button.png");
@ -34,7 +41,8 @@ public class View {
button = new Sprite(b); button = new Sprite(b);
title = new Sprite(t); title = new Sprite(t);
archer = new Sprite(a); archer = new Sprite(a);
arrow = new Texture("Archer.png");
Arrow = new Sprite(arrow);
float w = Gdx.graphics.getWidth(); float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight(); float h = Gdx.graphics.getHeight();
float wc = w/2; float wc = w/2;
@ -130,6 +138,54 @@ public class View {
} }
}, 0,1/5f); }, 0,1/5f);
trechts.stop(); trechts.stop();
tArrowLeft.scheduleTask(new Timer.Task() {
@Override
public void run() {
Arrow.setX(Arrow.getX() - 3);
ArrowTravel++;
if(ArrowTravel >= 300){
ArrowTravel = 0;
tArrowLeft.stop();
}
}
}, 0,1/50f);
tArrowLeft.stop();
tArrowRight.scheduleTask(new Timer.Task() {
@Override
public void run() {
Arrow.setX(Arrow.getX() + 3);
ArrowTravel++;
if(ArrowTravel >= 300){
ArrowTravel = 0;
tArrowLeft.stop();
}
}
}, 0,1/40f);
tArrowRight.stop();
tArrowUp.scheduleTask(new Timer.Task() {
@Override
public void run() {
Arrow.setY(Arrow.getY() + 3);
ArrowTravel++;
if(ArrowTravel >= 300){
ArrowTravel = 0;
tArrowLeft.stop();
}
}
}, 0,1/50f);
tArrowUp.stop();
tArrowDown.scheduleTask(new Timer.Task() {
@Override
public void run() {
Arrow.setY(Arrow.getY() - 3);
ArrowTravel++;
if(ArrowTravel >= 300){
ArrowTravel = 0;
tArrowLeft.stop();
}
}
}, 0,1/50f);
tArrowDown.stop();
} }
@ -169,10 +225,40 @@ public class View {
button.draw(batch); button.draw(batch);
player.draw(batch); player.draw(batch);
archer.draw(batch); archer.draw(batch);
if(ArrowTravel > 0){
Arrow.draw(batch);
}
batch.end(); batch.end();
} }
public void arrow(Archer a, int i){
switch(i){
case 0:
Arrow.setX((float) a.getxPos());
Arrow.setY((float) a.getyPos());
tArrowDown.start();
break;
case 1:
Arrow.setX((float) a.getxPos());
Arrow.setY((float) a.getyPos());
tArrowUp.start();
break;
case 2:
for(int n = 0; n < 50; n++){
Arrow.setX((float) a.getxPos());
Arrow.setY((float) a.getyPos());
tArrowLeft.start();
}
break;
case 3:
Arrow.setX((float) a.getxPos());
Arrow.setY((float) a.getyPos());
tArrowRight.start();
break;
}
}
public void tuntenstop(){ public void tuntenstop(){
tunten.stop(); tunten.stop();

Loading…
Cancel
Save