ultra hardcore mechanics

master
Jonathan Hager 6 years ago
parent 758d9c7059
commit f1b8af631c

@ -103,7 +103,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override
public void run() {
if(m != null){
m.updateEntitySprite(d.getCurrentEntities());
//m.updateEntitySprite(d.getCurrentEntities());
for(int i = 0; i < d.getCurrentEntities().length; i++){
if(d.getCurrentEntities()[i] != null){
@ -116,14 +116,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
int x = (int) temp.getxPos();
int y = (int) temp.getyPos();
Entity test = d.getCurrentEntities()[i].move((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
Entity arrow = d.getCurrentEntities()[i].move((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
Sprite tempObject = m.entitySprites[i];
tempObject.setPosition(temp.getxPos(), temp.getyPos());
boolean overlaps = false;
boolean delete = false;
if(Intersector.overlaps(tempObject.getBoundingRectangle(), playerSprite)){
overlaps = true;
if(d.getCurrentEntities()[i].getId() == 2){
d.getCurrentEntities()[i].attack(d.getPlayer());
delete = true;
}
}
else{
for(RectangleMapObject rectangleObject : mapObjects.getByType(RectangleMapObject.class)){
@ -131,6 +136,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(Intersector.overlaps(tempObject.getBoundingRectangle(), rectangle)){
overlaps = true;
delete = true;
break;
}
}
@ -159,17 +165,24 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
m.entitySprites[i] = tempObject;
if(test != null){
if(arrow != null){
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = test;
d.getCurrentEntities()[k] = arrow;
m.updateEntitySprite(d.getCurrentEntities());
break;
}
}
}
if(delete && d.getCurrentEntities()[i].getId() == 2){
d.getCurrentEntities()[i] = null;
m.updateEntitySprite(d.getCurrentEntities());
}
}
}
}
}
}
}
}
},0, 0.03f);

@ -8,9 +8,9 @@ public abstract class Entity {
protected float xPos;
protected float yPos;
protected int hp;
protected int maxhp;
protected int dmg;
protected float hp;
protected float maxhp;
protected float dmg;
protected int lvl;
protected float movementX;
protected float movementY;
@ -29,8 +29,13 @@ public abstract class Entity {
this.direction = 2;
}
public void attack(){
public void attack(Entity e){
if(e.getHp() - this.dmg < 0){
e.setHp(1);
}
else{
e.setHp(e.getHp() - this.dmg);
}
}
public void update(){
xPos += movementX;
@ -84,27 +89,27 @@ public abstract class Entity {
this.yPos = yPos;
}
public int getHp() {
public float getHp() {
return hp;
}
public void setHp(int hp) {
public void setHp(float hp) {
this.hp = hp;
}
public int getMaxhp() {
public float getMaxhp() {
return maxhp;
}
public void setMaxhp(int maxhp) {
public void setMaxhp(float maxhp) {
this.maxhp = maxhp;
}
public int getDmg() {
public float getDmg() {
return dmg;
}
public void setDmg(int dmg) {
public void setDmg(float dmg) {
this.dmg = dmg;
}

@ -23,8 +23,8 @@ public class Archer extends Entity{
@Override
public Entity move(int xPosPlayer, int yPosPlayer) {
int deltaX = xPosPlayer - (int) xPos;
int deltaY = yPosPlayer - (int) yPos;
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
double alpha;
if(deltaX == 0 && deltaY >= 0){
@ -50,7 +50,7 @@ public class Archer extends Entity{
int distance = (int) Math.abs((deltaY / Math.sin(alpha)));
Arrow a = null;
if(distance >= 124 && distance <= 164 || counter % 30 == 0){
if(distance >= 124 && distance <= 164 && counter % 60 == 0){
a = new Arrow(this.xPos, this.yPos, this.lvl, 0);
movementX = (int) (4 * Math.cos(alpha));
@ -68,13 +68,10 @@ public class Archer extends Entity{
movementX *= -1;
movementY *= -1;
}
else if(distance >= 124/* && distance <= 164*/){
else if(distance >= 124 && distance <= 164){
movementX = 0;
movementY = 0;
}
else if(distance > 164){
}
xPos += movementX;

@ -14,18 +14,18 @@ import com.dungeoncrawler.model.Item;
*/
public class Player extends Entity {
int standartDmg;
int standartMaxHp;
float standartDmg;
float standartMaxHp;
public Player() {
super(200, 200, 1);
this.maxhp = 5 * (lvl + 1);
this.maxhp = 20 * (lvl + 1);
this.hp = this.maxhp;
this.standartMaxHp = 5 * (lvl + 1);
this.dmg = 3*lvl;
this.standartDmg = dmg = 3*lvl;
this.standartDmg = dmg;
id = -1;
inv = new Inventory(3,2);
// TODO: Sinnvolle Werte finden

@ -19,8 +19,8 @@ public class Swordsman extends Entity {
@Override
public Entity move(int xPosPlayer, int yPosPlayer){
int deltaX = xPosPlayer - (int) xPos;
int deltaY = yPosPlayer - (int) yPos;
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
double alpha;
if(deltaX == 0 && deltaY >= 0){
@ -49,6 +49,7 @@ public class Swordsman extends Entity {
xPos += movementX;
yPos += movementY;
System.out.println("Winkel: " + Math.toDegrees(alpha));
return null;
}

Loading…
Cancel
Save