player is being written back - code for enemies also implemented -> not working because there are no enemy actors yet

master
GammelJAN 5 years ago
parent 18186f4ff3
commit b837528a03

@ -2,8 +2,8 @@ package com.trs.main;
public class Enemy extends FightObject{
public Enemy(float x, float y, AnimatedSprite sprite, Stats stats, int id) {
super(x, y, sprite, stats, id);
public Enemy(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) {
super(x, y, sprite, stats, id, isPlayer);
}
}

@ -6,13 +6,15 @@ public abstract class FightObject {
protected int id;
protected float x;
protected float y;
protected boolean isPlayer;
public FightObject(float x, float y, AnimatedSprite sprite, Stats stats, int id) {
public FightObject(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) {
this.sprite = sprite;
this.stats = stats;
this.id = id;
this.x = x;
this.y = y;
this.isPlayer = isPlayer;
}
void setX(float x) {

@ -2,8 +2,8 @@ package com.trs.main;
public class FightPlayer extends FightObject{
public FightPlayer(float x, float y, AnimatedSprite sprite, Stats stats, int id) {
super(x, y, sprite, stats, id);
public FightPlayer(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) {
super(x, y, sprite, stats, id, isPlayer);
}
}

@ -54,7 +54,14 @@ public class FightScreen {
boolean finished = true;
for(FightObject object : objects){
Vector2 POI = new Vector2((int)(Math.ceil((double)(object.x)/32.0) * 32.0) - 16, (int)(Math.ceil((double)(object.y)/32.0) * 32.0));
Vector2 movement = new Vector2(3,0);
float speed = 3;
if(Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y)) < 3f && Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y)) != 0) {
speed = Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y));
}
Vector2 movement = new Vector2(speed,0);
movement.setAngleRad(StaticMath.calculateAngle(object.x, object.y, POI.x, POI.y));
int facing;
if(movement.angleDeg() < 135 && movement.angleDeg() >= 45) {

@ -176,7 +176,7 @@ public class MapContainer {
// CREATING FightObject Array
// Temporarily only Player
FightObject[] fightObjects = {new FightPlayer(getPlayer().getX(),getPlayer().getY(),getPlayer().playerSprite, getPlayer().stats, 0)};
FightObject[] fightObjects = {new FightPlayer(getPlayer().getX(),getPlayer().getY(),getPlayer().playerSprite, getPlayer().stats, 0, true)};
fs = new FightScreen(stage.getBatch(), fightObjects, rects, getPlayer().getX()+32, getPlayer().getY()+32);
}
@ -214,10 +214,39 @@ public class MapContainer {
}
if(Main.gamestate == 2){
fs.act(f);
fs.draw();
if(fs.state == 3){
for(FightObject object : fs.objects){
if(object.isPlayer){
getPlayer().setX(object.x);
getPlayer().setY(object.y);
getPlayer().stats = object.stats;
}
else{
/*
for(int i = stage.getActors().size-1; i >= 0; i--){
if(stage.getActors().get(i) instanceof EnemyNpc){
if(((EnemyNpc)stage.getActors().get(i)).id == object.id){
if(object.stats.getHp() <= 0){
stage.getActors().removeIndex(i);
}
else{
stage.getActors().get(i).setPosition(object.x, object.y);
((EnemyNpc)stage.getActors().get(i)).stats = object.stats;
}
}
}
}
*/
}
}
fs = null;
Main.gamestate = 0;
}
else{
fs.act(f);
fs.draw();
}
}
renderer.render(layersAbovePlayer);

Loading…
Cancel
Save