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() {
@Override
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
@ -64,18 +86,22 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean keyDown(int keycode) {
if(keycode == Input.Keys.LEFT){
p.setMovementX(-3);
p.move();
}
if(keycode == Input.Keys.RIGHT){
p.setMovementX(3);
p.move();
}
if(keycode == Input.Keys.UP){
p.setMovementY(3);
p.move();
}
if(keycode == Input.Keys.DOWN){
p.setMovementY(-3);
p.move();
}
if(keycode == Input.Keys.W){
@ -87,21 +113,25 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean keyUp(int keycode) {
if(keycode == Input.Keys.LEFT){
p.setMovementX(0);
p.move();
v.tlinksstop();
}
if(keycode == Input.Keys.RIGHT){
p.setMovementX(0);
p.move();
v.trechtsstop();
}
if(keycode == Input.Keys.DOWN){
p.setMovementY(0);
p.move();
v.tuntenstop();
}
if(keycode == Input.Keys.UP){
p.setMovementY(0);
p.move();
v.tobenstop();
}
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(){
@ -37,23 +41,30 @@ public abstract class Entity {
}
public void rdmMove(){
switch((int) (Math.random() * 5)){
case 0: //left
setMovementX(-3);
move();
for(int i = 0; i<=32;i++){
setMovementX(-1);
move();
}
break;
case 1: //right
setMovementX(3);
move();
for(int i = 0; i<=32;i++){
setMovementX(1);
move();
}
break;
case 2: //up
setMovementY(3);
move();
for(int i = 0; i<=32;i++){
setMovementY(1);
move();
}
break;
case 3: //down
setMovementY(-3);
move();
for(int i = 0; i<=32;i++){
setMovementY(-1);
move();
}
break;
}
}

@ -14,7 +14,7 @@ import com.dungeoncrawler.model.Entity;
public class Player extends Entity {
public Player() {
super(0, 0, 1);
super(200, 200, 1);
this.maxhp = 5*lvl;
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.Cell;
import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile;
import com.badlogic.gdx.utils.Timer;
/**
*
* @author jonathan

@ -25,6 +25,13 @@ public class View {
Timer toben;
Timer tlinks;
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() {
b = new Texture("Button.png");
@ -34,7 +41,8 @@ public class View {
button = new Sprite(b);
title = new Sprite(t);
archer = new Sprite(a);
arrow = new Texture("Archer.png");
Arrow = new Sprite(arrow);
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
float wc = w/2;
@ -130,6 +138,54 @@ public class View {
}
}, 0,1/5f);
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,11 +225,41 @@ public class View {
button.draw(batch);
player.draw(batch);
archer.draw(batch);
if(ArrowTravel > 0){
Arrow.draw(batch);
}
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(){
tunten.stop();
PlayerFrame = 0;

Loading…
Cancel
Save