From 8f74ca2ee5095e20b7c04835a75eb374579b432a Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 7 May 2007 09:32:13 +0000 Subject: [PATCH] fixed enamy select and building units --- src/ei/engine/math/Vector2f.java | 10 ++++++ src/ei/game/input/InGameMouseInput.java | 12 +++---- src/ei/game/scene/GameEntity.java | 4 +-- src/ei/game/scene/SelectBox.java | 14 ++++++++- src/ei/game/scene/buildings/Building.java | 38 +++++++++++++++++------ src/ei/game/scene/map/MapEntity.java | 4 +-- src/ei/game/scene/units/Unit.java | 25 ++++++++++++--- 7 files changed, 83 insertions(+), 24 deletions(-) diff --git a/src/ei/engine/math/Vector2f.java b/src/ei/engine/math/Vector2f.java index 353dd30..be1a323 100644 --- a/src/ei/engine/math/Vector2f.java +++ b/src/ei/engine/math/Vector2f.java @@ -64,6 +64,16 @@ public class Vector2f implements Comparable{ y += i.getY(); } + public void sub(Vector2f i){ + x -= i.getX(); + y -= i.getY(); + } + + public void sub(float sx,float sy){ + x += sx; + y += sy; + } + public String toString(){ return "Vector2f["+x+","+y+"]"; } diff --git a/src/ei/game/input/InGameMouseInput.java b/src/ei/game/input/InGameMouseInput.java index df1e68f..10cd60a 100644 --- a/src/ei/game/input/InGameMouseInput.java +++ b/src/ei/game/input/InGameMouseInput.java @@ -104,14 +104,14 @@ public class InGameMouseInput extends MouseInput{ // Make unit mouseover select if(!map.isPosEmpty(pos.getX(), pos.getY())){ if(oldMouseOver != map.getPos(pos.getX(), pos.getY())){ - if(oldMouseOver != null)oldMouseOver.setMouseOver(false); + if(oldMouseOver != null)oldMouseOver.setMouseOver(player,false); oldMouseOver = map.getPos(pos.getX(), pos.getY()); - oldMouseOver.setMouseOver(true); + oldMouseOver.setMouseOver(player,true); } } else{ if(oldMouseOver != null){ - oldMouseOver.setMouseOver(false); + oldMouseOver.setMouseOver(player,false); oldMouseOver = null; } } @@ -210,12 +210,12 @@ public class InGameMouseInput extends MouseInput{ for(int j=Math.min(startPos.getY(), stopPos.getY()); j<=Math.max(startPos.getY(), stopPos.getY()) ;j++){ if(!map.isPosEmpty(i, j) && map.getPos(i, j).getPlayer() == player){ selected.add(map.getPos(i, j)); - map.getPos(i, j).setSelected(true,false); + map.getPos(i, j).setSelected(player,true,false); } } } if(!selected.isEmpty()){ - selected.get((int)(Math.random()*selected.size())).setSelected(true,true); + selected.get((int)(Math.random()*selected.size())).setSelected(player, true,true); } } @@ -225,7 +225,7 @@ public class InGameMouseInput extends MouseInput{ */ public void deselectAllUnits(){ for(int i=0; i= buildQueue.peek().getBuildTime()){ if(!unitNode.contains(buildQueue.peek().getNode())){ - System.out.println(buildQueue.peek().getNode()); + System.out.println("lol1"+buildQueue.peek().getNode()); unitNode.add(buildQueue.peek().getNode(),unitNode.size()/2); buildQueue.peek().getNode().setLocation(moveFrom); } Vector2i temp = Map.getPosByPixel(moveTo.getX(), moveTo.getY()); - 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)); + } + else{ //The moving is done here. if(moveTo.getX() > buildQueue.peek().getNode().getLocation().getX()) { buildQueue.peek().getNode().getLocation().add(buildQueue.peek().getVelocity(), 0f, 0f); @@ -171,7 +191,7 @@ public abstract class Building extends GameEntity{ if(moveTo.getY() < buildQueue.peek().getNode().getLocation().getY()) { buildQueue.peek().getNode().getLocation().add(0f, -buildQueue.peek().getVelocity(), 0f); } - System.out.println(buildQueue.peek().getNode().getLocation()); + System.out.println("lol2"+buildQueue.peek().getNode().getLocation()); 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 ){ buildTime = 0; diff --git a/src/ei/game/scene/map/MapEntity.java b/src/ei/game/scene/map/MapEntity.java index 7dce4bb..73aa17f 100644 --- a/src/ei/game/scene/map/MapEntity.java +++ b/src/ei/game/scene/map/MapEntity.java @@ -26,9 +26,9 @@ public abstract class MapEntity extends Unit{ protected void move(int x, int y, boolean b) {} - public void setSelected(boolean b) {} + public void setSelected(Player p, boolean b) {} - public void setMouseOver(boolean b) {} + public void setMouseOver(Player p, boolean b) {} @Override public float getVelocity() { diff --git a/src/ei/game/scene/units/Unit.java b/src/ei/game/scene/units/Unit.java index 8473477..92f83f6 100644 --- a/src/ei/game/scene/units/Unit.java +++ b/src/ei/game/scene/units/Unit.java @@ -13,6 +13,7 @@ import ei.game.gamestate.InGameState; import ei.game.player.Player; import ei.game.scene.GameEntity; import ei.game.scene.Map; +import ei.game.scene.SelectBox; import ei.game.scene.weapons.Weapon; import ei.game.scene.weapons.WeaponHandler; @@ -63,19 +64,35 @@ public abstract class Unit extends GameEntity{ init(); } - public void setSelected(boolean b,boolean playSound) { + public void setSelected(Player p,boolean b,boolean playSound) { if(b) { if(playSound)getSelectSound().play(); - unitNode.add(getSelection().getSelectNode()); + SelectBox box = getSelection(); + if(getPlayer() != p){ + box.setColor(SelectBox.COLOR_RED); + unitNode.add(box.getSelectNode()); + } + else{ + box.setColor(SelectBox.COLOR_GREEN); + unitNode.add(box.getSelectNode()); + } } else{ unitNode.remove(getSelection().getSelectNode()); } } - public void setMouseOver(boolean b) { + public void setMouseOver(Player p,boolean b) { if(b) { - unitNode.add(getSelection().getMouseOverNode()); + SelectBox box = getSelection(); + if(getPlayer() != p){ + box.setColor(SelectBox.COLOR_RED); + unitNode.add(box.getMouseOverNode()); + } + else{ + box.setColor(SelectBox.COLOR_GREEN); + unitNode.add(box.getMouseOverNode()); + } } else{ unitNode.remove(getSelection().getMouseOverNode());