diff --git a/src/ei/engine/scene/Node.java b/src/ei/engine/scene/Node.java index 33460a4..1fc3b06 100644 --- a/src/ei/engine/scene/Node.java +++ b/src/ei/engine/scene/Node.java @@ -78,7 +78,7 @@ public class Node extends Sprite { super.setTranslationGL(); //the rotation Rectangle rect = getBound(); - super.setRotationGL(rect.width/2,rect.height/2); + //super.setRotationGL(rect.width/2,rect.height/2); //Sets the scale of the sprite super.setScaleGL(); diff --git a/src/ei/game/scene/Map.java b/src/ei/game/scene/Map.java index de30609..f7f5b59 100644 --- a/src/ei/game/scene/Map.java +++ b/src/ei/game/scene/Map.java @@ -40,10 +40,10 @@ public class Map { * @param y y pixels * @return The pos thats in the coordinates */ - public Vector2i getPosByPixel(float x, float y){ + public static Vector2i getPosByPixel(float x, float y){ x = x/POS_SIZE; y = y/POS_SIZE; - return new Vector2i((int)x,(int)y); + return new Vector2i((int)x, (int)y); } /** @@ -52,7 +52,7 @@ public class Map { * @param y y pos * @return The coordinate of the pos */ - public Vector2f getPixelByPos(int x, int y){ + public static Vector2f getPixelByPos(int x, int y){ float xf = (POS_SIZE*x); float yf = (POS_SIZE*y); return new Vector2f(xf,yf); diff --git a/src/ei/game/scene/units/Unit.java b/src/ei/game/scene/units/Unit.java index d2bd9f2..3d7ac4f 100644 --- a/src/ei/game/scene/units/Unit.java +++ b/src/ei/game/scene/units/Unit.java @@ -3,10 +3,12 @@ package ei.game.scene.units; import ei.engine.math.Vector2f; import ei.engine.math.Vector2i; +import ei.engine.math.Vector3f; import ei.engine.scene.Node; import ei.engine.scene.Sprite; import ei.game.gamestate.InGameState; import ei.game.scene.GameEntity; +import ei.game.scene.Map; import ei.game.scene.weapons.Weapon; /** @@ -74,7 +76,7 @@ public abstract class Unit extends GameEntity{ InGameState.getMap().removePos(oldPos.getX(), oldPos.getY()); } setPos(x, y); - moveTo = InGameState.getMap().getPixelByPos((int)x, (int)y); + moveTo = Map.getPixelByPos((int)x, (int)y); oldPos = new Vector2i(x, y); } @@ -83,6 +85,26 @@ public abstract class Unit extends GameEntity{ */ public void update() { if(moveTo!=null) { + Vector2i moveVect = Map.getPosByPixel(moveTo.getX(), moveTo.getY()); + Vector2i currentVect = Map.getPosByPixel(unitNode.getLocation().getX(), unitNode.getLocation().getY()); + //System.out.println("going to: "+moveVect); + //System.out.println("from: "+currentVect); + Vector3f currentRot = null; + if(moveVect.getX() < currentVect.getX()) { + unitNode.get("Tank").setRotation(new Vector3f(0, 0, 90)); + + } + if(moveVect.getX() > currentVect.getX()) { + unitNode.get("Tank").setRotation(new Vector3f(0, 0, -90)); + } + if(moveVect.getY() < currentVect.getY()) { + unitNode.get("Tank").setRotation(new Vector3f(0, 0, 180)); + } + if(moveVect.getY() > currentVect.getY()) { + unitNode.get("Tank").setRotation(new Vector3f(0, 0, 0)); + } + //System.out.println(unitNode.get("Tank").getRotation()); + if(moveTo.getX() > unitNode.getLocation().getX()) { unitNode.getLocation().add(1.5f, 0f, 0f); }