fixe building animations

This commit is contained in:
Ziver Koc 2007-05-07 13:46:41 +00:00
parent bdd9d6c746
commit ae32a0a298
4 changed files with 18 additions and 14 deletions

View file

@ -70,8 +70,8 @@ public class Vector2f implements Comparable{
} }
public void sub(float sx,float sy){ public void sub(float sx,float sy){
x += sx; x -= sx;
y += sy; y -= sy;
} }
public String toString(){ public String toString(){

View file

@ -28,18 +28,19 @@ public class EndGameState extends GameState{
case VICTORY: case VICTORY:
Sprite v = new Sprite("Victory","data/victory.png"); Sprite v = new Sprite("Victory","data/victory.png");
v.setLocation(new Vector3f( v.setLocation(new Vector3f(
(LWJGLGameWindow.getWidth()/2), (LWJGLGameWindow.getWidth()/2+LWJGLGameWindow.getCamera().getLocation().getX()),
(LWJGLGameWindow.getHeight()/2),0.0f)); (LWJGLGameWindow.getHeight()/2+LWJGLGameWindow.getCamera().getLocation().getY()),0.0f));
fade.setEntity(v); fade.setEntity(v);
break; break;
case DEFEAT: case DEFEAT:
Sprite d = new Sprite("Defeat","data/defeat.png"); Sprite d = new Sprite("Defeat","data/defeat.png");
d.setLocation(new Vector3f( d.setLocation(new Vector3f(
(LWJGLGameWindow.getWidth()/2), (LWJGLGameWindow.getWidth()/2+LWJGLGameWindow.getCamera().getLocation().getX()),
(LWJGLGameWindow.getHeight()/2),0.0f)); (LWJGLGameWindow.getHeight()/2+LWJGLGameWindow.getCamera().getLocation().getY()),0.0f));
fade.setEntity(d); fade.setEntity(d);
break; break;
} }
InGameState.input(false);
} }
@Override @Override

View file

@ -12,7 +12,6 @@ import ei.game.player.HumanPlayer;
import ei.game.player.PlayerHandler; import ei.game.player.PlayerHandler;
import ei.game.scene.Map; import ei.game.scene.Map;
import ei.game.scene.units.APU; import ei.game.scene.units.APU;
import ei.game.scene.units.Bomber;
import ei.game.scene.units.Tank; import ei.game.scene.units.Tank;
import ei.game.scene.weapons.WeaponHandler; import ei.game.scene.weapons.WeaponHandler;
@ -98,7 +97,7 @@ public class InGameState extends GameState{
return map; return map;
} }
public void input(boolean b){ public static void input(boolean b){
mouse.setEnabled(b); mouse.setEnabled(b);
keyboard.setEnabled(b); keyboard.setEnabled(b);
} }

View file

@ -32,11 +32,15 @@ public abstract class Building extends GameEntity{
super(l, p); super(l, p);
this.size = size; this.size = size;
buildQueue = new LinkedList<Unit>(); buildQueue = new LinkedList<Unit>();
unitNode = new Node("UnitNode"); unitNode = new Node("BuildingNode");
unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY(), this.size)); unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY(), this.size));
setPos(pos.getX(), pos.getY(), this.size); setPos(pos.getX(), pos.getY(), this.size);
moveFrom = Map.getPixelByPos(oldPos.getX()+size-2, oldPos.getY()+size-1); moveFrom = Map.getPixelByPos(oldPos.getX()+size-2, oldPos.getY()+size-2);
moveTo = Map.getPixelByPos( oldPos.getX()+size-2, oldPos.getY()+size); moveTo = Map.getPixelByPos( oldPos.getX()+size-2, oldPos.getY()+size);
moveFrom.sub(unitNode.getLocation().getX()-20,unitNode.getLocation().getY());
moveTo.sub(unitNode.getLocation().getX(),unitNode.getLocation().getY());
} }
public void setSelected(Player p,boolean b, boolean playSound) { public void setSelected(Player p,boolean b, boolean playSound) {
@ -172,11 +176,11 @@ public abstract class Building extends GameEntity{
buildTime++; buildTime++;
if(buildTime >= buildQueue.peek().getBuildTime()){ if(buildTime >= buildQueue.peek().getBuildTime()){
if(!unitNode.contains(buildQueue.peek().getNode())){ if(!unitNode.contains(buildQueue.peek().getNode())){
System.out.println("lol1"+buildQueue.peek().getNode());
unitNode.add(buildQueue.peek().getNode(),unitNode.size()/2); unitNode.add(buildQueue.peek().getNode(),unitNode.size()/2);
buildQueue.peek().getNode().setLocation(moveFrom); buildQueue.peek().getNode().setLocation(moveFrom);
} }
Vector2i temp = Map.getPosByPixel(moveTo.getX(), moveTo.getY()); Vector2i temp = Map.getPosByPixel(moveTo.getX()+unitNode.getLocation().getX(), moveTo.getY()+unitNode.getLocation().getY());
System.out.println("lol "+temp+" "+moveTo.getX());
if(!InGameState.getMap().isPosEmpty(temp.getX(),temp.getY())){ if(!InGameState.getMap().isPosEmpty(temp.getX(),temp.getY())){
InGameState.getMap().getPos(temp.getX(),temp.getY()).move(false, oldPos.getX()+(size/2), oldPos.getY()-(size/2)); InGameState.getMap().getPos(temp.getX(),temp.getY()).move(false, oldPos.getX()+(size/2), oldPos.getY()-(size/2));
} }
@ -194,7 +198,7 @@ public abstract class Building extends GameEntity{
if(moveTo.getY() < buildQueue.peek().getNode().getLocation().getY()) { if(moveTo.getY() < buildQueue.peek().getNode().getLocation().getY()) {
buildQueue.peek().getNode().getLocation().add(0f, -buildQueue.peek().getVelocity(), 0f); buildQueue.peek().getNode().getLocation().add(0f, -buildQueue.peek().getVelocity(), 0f);
} }
System.out.println("lol2"+buildQueue.peek().getNode().getLocation());
if(Math.abs(moveTo.getX() - buildQueue.peek().getNode().getLocation().getX()) < buildQueue.peek().getVelocity()+1 if(Math.abs(moveTo.getX() - buildQueue.peek().getNode().getLocation().getX()) < buildQueue.peek().getVelocity()+1
&& Math.abs(moveTo.getY() - buildQueue.peek().getNode().getLocation().getY())< buildQueue.peek().getVelocity()+1 ){ && Math.abs(moveTo.getY() - buildQueue.peek().getNode().getLocation().getY())< buildQueue.peek().getVelocity()+1 ){
buildTime = 0; buildTime = 0;