Added a queue size to the game hud and fixed the hud input thingy
This commit is contained in:
parent
bbf31af002
commit
5bb373573d
5 changed files with 125 additions and 46 deletions
|
|
@ -69,10 +69,8 @@ public class ProgressBar{
|
|||
value.setSize(new Vector2f(((float)v/max)*width,height));//(v/max)*width
|
||||
value.setLocation(new Vector2f(-width/2+(((float)v/max)*width)/2,0));
|
||||
|
||||
System.out.println("lol"+((float)v/max));
|
||||
for(int i=0; i<valueColor.length ;i++){
|
||||
if(valueColor[i] != null && ((float)v/max) < (float)i/100){
|
||||
System.out.println("lol"+((float)v/max));
|
||||
value.getTexture().setColor(valueColor[i]);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ package ei.engine.ui;
|
|||
|
||||
import ei.engine.math.Vector2f;
|
||||
import ei.engine.math.Vector3f;
|
||||
import ei.engine.scene.Entity;
|
||||
import ei.engine.scene.Node;
|
||||
import ei.engine.scene.Sprite;
|
||||
|
||||
public class Button extends UiComponent{
|
||||
private Sprite normalButton;
|
||||
private Sprite ontopButton;
|
||||
private Sprite presedButton;
|
||||
private Entity normalButton;
|
||||
private Entity ontopButton;
|
||||
private Entity presedButton;
|
||||
private Node buttonNode;
|
||||
private Vector2f size;
|
||||
|
||||
|
|
@ -18,15 +18,15 @@ public class Button extends UiComponent{
|
|||
size = s;
|
||||
}
|
||||
|
||||
public void setButtonSprite(Sprite s){
|
||||
public void setButtonSprite(Entity s){
|
||||
normalButton = s;
|
||||
}
|
||||
|
||||
public void setOnTopButtonSprite(Sprite s){
|
||||
public void setOnTopButtonSprite(Entity s){
|
||||
ontopButton = s;
|
||||
}
|
||||
|
||||
public void setPressedButtonSprite(Sprite s){
|
||||
public void setPressedButtonSprite(Entity s){
|
||||
presedButton = s;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ei.game.hud;
|
||||
|
||||
import ei.engine.effects.BitmapText;
|
||||
import ei.engine.math.Vector2f;
|
||||
import ei.engine.scene.Node;
|
||||
import ei.engine.scene.Sprite;
|
||||
|
|
@ -7,6 +8,10 @@ import ei.engine.ui.Button;
|
|||
import ei.engine.ui.UiComponent;
|
||||
import ei.engine.ui.UiHandler;
|
||||
import ei.engine.ui.UiListener;
|
||||
import ei.game.player.Player;
|
||||
import ei.game.scene.units.APU;
|
||||
import ei.game.scene.units.Bomber;
|
||||
import ei.game.scene.units.Tank;
|
||||
|
||||
/**
|
||||
* This class handels the build buttons for the units
|
||||
|
|
@ -15,56 +20,65 @@ import ei.engine.ui.UiListener;
|
|||
*/
|
||||
public class InGameBuildHud {
|
||||
private UiHandler ui;
|
||||
private Player player;
|
||||
private BitmapText queueSize;
|
||||
|
||||
public InGameBuildHud(int x ,int y){
|
||||
public Button removeLastQueue;
|
||||
public Button apuBuildButton;
|
||||
public Button tankBuildButton;
|
||||
public Button bomberBuildButton;
|
||||
|
||||
public InGameBuildHud(int x ,int y, Player p){
|
||||
player = p;
|
||||
ui = new UiHandler("BuildMenu");
|
||||
|
||||
Vector2f size = new Vector2f(40,40);
|
||||
HudListener listener = new HudListener(this);
|
||||
|
||||
Button apu = new Button("TankButton", size);
|
||||
removeLastQueue = new Button("TankButton", size);
|
||||
queueSize = new BitmapText("QueueSize");
|
||||
queueSize.setText("0");
|
||||
removeLastQueue.setButtonSprite(queueSize);
|
||||
removeLastQueue.getNode().setLocation(new Vector2f(x,y));
|
||||
removeLastQueue.addListener(listener);
|
||||
ui.addUi(removeLastQueue);
|
||||
|
||||
apuBuildButton = new Button("TankButton", size);
|
||||
Sprite s1 = new Sprite("ApuButton","data/ui/apu_button.png");
|
||||
s1.setSize(size);
|
||||
apu.setButtonSprite(s1);
|
||||
apuBuildButton.setButtonSprite(s1);
|
||||
Sprite s2 = new Sprite("ApuButton_Selected","data/ui/apu_button_selected.png");
|
||||
s2.setSize(size);
|
||||
apu.setOnTopButtonSprite(s2);
|
||||
apu.getNode().setLocation(new Vector2f(x,y));
|
||||
apu.addListener(new UiListener(){
|
||||
public void ActionEvent(UiComponent source){
|
||||
System.out.println("apu");
|
||||
}
|
||||
});
|
||||
ui.addUi(apu);
|
||||
apuBuildButton.setOnTopButtonSprite(s2);
|
||||
apuBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*2),y));
|
||||
apuBuildButton.addListener(listener);
|
||||
ui.addUi(apuBuildButton);
|
||||
|
||||
Button tank = new Button("TankButton", size);
|
||||
tankBuildButton = new Button("TankButton", size);
|
||||
Sprite s3 = new Sprite("TankButton","data/ui/tank_button.png");
|
||||
s3.setSize(size);
|
||||
tank.setButtonSprite(s3);
|
||||
tankBuildButton.setButtonSprite(s3);
|
||||
Sprite s4 = new Sprite("TankButton_Selected","data/ui/tank_button_selected.png");
|
||||
s4.setSize(size);
|
||||
tank.setOnTopButtonSprite(s4);
|
||||
tank.getNode().setLocation(new Vector2f(x+(size.getX()*2),y));
|
||||
tank.addListener(new UiListener(){
|
||||
public void ActionEvent(UiComponent source){
|
||||
System.out.println("tank");
|
||||
}
|
||||
});
|
||||
ui.addUi(tank);
|
||||
tankBuildButton.setOnTopButtonSprite(s4);
|
||||
tankBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*4),y));
|
||||
tankBuildButton.addListener(listener);
|
||||
ui.addUi(tankBuildButton);
|
||||
|
||||
Button bomber = new Button("TankButton", size);
|
||||
bomberBuildButton = new Button("TankButton", size);
|
||||
Sprite s5 = new Sprite("BomberButton","data/ui/bomber_button.png");
|
||||
s5.setSize(size);
|
||||
bomber.setButtonSprite(s5);
|
||||
bomberBuildButton.setButtonSprite(s5);
|
||||
Sprite s6 = new Sprite("BomberButton_Selected","data/ui/bomber_button_selected.png");
|
||||
s6.setSize(size);
|
||||
bomber.setOnTopButtonSprite(s6);
|
||||
bomber.getNode().setLocation(new Vector2f(x+(size.getX()*4),y));
|
||||
bomber.addListener(new UiListener(){
|
||||
public void ActionEvent(UiComponent source){
|
||||
System.out.println("bomber");
|
||||
}
|
||||
});
|
||||
ui.addUi(bomber);
|
||||
bomberBuildButton.setOnTopButtonSprite(s6);
|
||||
bomberBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*6),y));
|
||||
bomberBuildButton.addListener(listener);
|
||||
ui.addUi(bomberBuildButton);
|
||||
}
|
||||
|
||||
public void update(){
|
||||
queueSize.setText(""+player.getCC().getBuildQueueSize());
|
||||
}
|
||||
|
||||
public UiHandler getUi(){
|
||||
|
|
@ -74,4 +88,36 @@ public class InGameBuildHud {
|
|||
public Node getNode(){
|
||||
return ui.getNode();
|
||||
}
|
||||
|
||||
public Player getPlayer(){
|
||||
return player;
|
||||
}
|
||||
|
||||
class HudListener implements UiListener{
|
||||
private InGameBuildHud hud;
|
||||
|
||||
public HudListener(InGameBuildHud h){
|
||||
hud = h;
|
||||
}
|
||||
|
||||
public void ActionEvent(UiComponent source){
|
||||
// builds a apu
|
||||
if(source == hud.apuBuildButton){
|
||||
hud.getPlayer().getCC().buildUnit(new APU(0,0,player));
|
||||
}
|
||||
// builds a tank
|
||||
else if(source == hud.tankBuildButton){
|
||||
hud.getPlayer().getCC().buildUnit(new Tank(0,0,player));
|
||||
}
|
||||
// builds a bomber
|
||||
else if(source == hud.bomberBuildButton){
|
||||
hud.getPlayer().getCC().buildUnit(new Bomber(0,0,player));
|
||||
}
|
||||
|
||||
// removes the last unit in the queue
|
||||
else if(source == hud.removeLastQueue){
|
||||
hud.getPlayer().getCC().removeLast();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class InGameHud {
|
|||
hudNode.add(buildBar.getNode());
|
||||
|
||||
buildHud = new InGameBuildHud((int)(buildBack.getLocation().getX()-buildBack.getSize().getX()/4),
|
||||
(int)(buildBack.getLocation().getY()+10));
|
||||
(int)(buildBack.getLocation().getY()+10),player);
|
||||
hudNode.add(buildHud.getNode());
|
||||
}
|
||||
|
||||
|
|
@ -61,6 +61,9 @@ public class InGameHud {
|
|||
money.setLocation(new Vector2f(LWJGLGameWindow.getWidth()-money.getBound().width,5));
|
||||
|
||||
player.addKredits(100);
|
||||
buildBar.setValue(player.getCC().getBuildProgress());
|
||||
|
||||
buildHud.update();
|
||||
|
||||
hudNode.setLocation(new Vector2f(
|
||||
LWJGLGameWindow.getCamera().getLocation().getX(),
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package ei.game.scene.buildings;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
import ei.engine.math.Vector2i;
|
||||
import ei.engine.scene.Node;
|
||||
|
|
@ -17,7 +16,7 @@ import ei.game.scene.units.Unit;
|
|||
*
|
||||
*/
|
||||
public abstract class Building extends GameEntity{
|
||||
private Queue<Unit> buildQueue;
|
||||
private LinkedList<Unit> buildQueue;
|
||||
private int buildTime;
|
||||
private Node unitNode;
|
||||
private Vector2i oldPos;
|
||||
|
|
@ -80,7 +79,41 @@ public abstract class Building extends GameEntity{
|
|||
InGameState.getMap().setBuildPos(this, x, y, size);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds a unit to the build queue
|
||||
* @param u The unit to build
|
||||
*/
|
||||
public void buildUnit(Unit u){
|
||||
buildQueue.addLast(u);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the size of the build queue
|
||||
* @return The size of the build queue
|
||||
*/
|
||||
public int getBuildQueueSize(){
|
||||
return buildQueue.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the last unit in the build queue
|
||||
*
|
||||
*/
|
||||
public void removeLast(){
|
||||
if(!buildQueue.isEmpty()){
|
||||
buildQueue.removeLast();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the procentage of completion of the unit
|
||||
*
|
||||
*/
|
||||
public int getBuildProgress(){
|
||||
// TODO return the procentage of completion of the unit
|
||||
return 50;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes this building from the game.
|
||||
*
|
||||
|
|
@ -98,8 +131,7 @@ public abstract class Building extends GameEntity{
|
|||
|
||||
if(getLife()<=0) {
|
||||
removeBuilding();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue