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
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue