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.setSize(new Vector2f(((float)v/max)*width,height));//(v/max)*width
|
||||||
value.setLocation(new Vector2f(-width/2+(((float)v/max)*width)/2,0));
|
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++){
|
for(int i=0; i<valueColor.length ;i++){
|
||||||
if(valueColor[i] != null && ((float)v/max) < (float)i/100){
|
if(valueColor[i] != null && ((float)v/max) < (float)i/100){
|
||||||
System.out.println("lol"+((float)v/max));
|
|
||||||
value.getTexture().setColor(valueColor[i]);
|
value.getTexture().setColor(valueColor[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@ package ei.engine.ui;
|
||||||
|
|
||||||
import ei.engine.math.Vector2f;
|
import ei.engine.math.Vector2f;
|
||||||
import ei.engine.math.Vector3f;
|
import ei.engine.math.Vector3f;
|
||||||
|
import ei.engine.scene.Entity;
|
||||||
import ei.engine.scene.Node;
|
import ei.engine.scene.Node;
|
||||||
import ei.engine.scene.Sprite;
|
|
||||||
|
|
||||||
public class Button extends UiComponent{
|
public class Button extends UiComponent{
|
||||||
private Sprite normalButton;
|
private Entity normalButton;
|
||||||
private Sprite ontopButton;
|
private Entity ontopButton;
|
||||||
private Sprite presedButton;
|
private Entity presedButton;
|
||||||
private Node buttonNode;
|
private Node buttonNode;
|
||||||
private Vector2f size;
|
private Vector2f size;
|
||||||
|
|
||||||
|
|
@ -18,15 +18,15 @@ public class Button extends UiComponent{
|
||||||
size = s;
|
size = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setButtonSprite(Sprite s){
|
public void setButtonSprite(Entity s){
|
||||||
normalButton = s;
|
normalButton = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnTopButtonSprite(Sprite s){
|
public void setOnTopButtonSprite(Entity s){
|
||||||
ontopButton = s;
|
ontopButton = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPressedButtonSprite(Sprite s){
|
public void setPressedButtonSprite(Entity s){
|
||||||
presedButton = s;
|
presedButton = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package ei.game.hud;
|
package ei.game.hud;
|
||||||
|
|
||||||
|
import ei.engine.effects.BitmapText;
|
||||||
import ei.engine.math.Vector2f;
|
import ei.engine.math.Vector2f;
|
||||||
import ei.engine.scene.Node;
|
import ei.engine.scene.Node;
|
||||||
import ei.engine.scene.Sprite;
|
import ei.engine.scene.Sprite;
|
||||||
|
|
@ -7,6 +8,10 @@ import ei.engine.ui.Button;
|
||||||
import ei.engine.ui.UiComponent;
|
import ei.engine.ui.UiComponent;
|
||||||
import ei.engine.ui.UiHandler;
|
import ei.engine.ui.UiHandler;
|
||||||
import ei.engine.ui.UiListener;
|
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
|
* This class handels the build buttons for the units
|
||||||
|
|
@ -15,56 +20,65 @@ import ei.engine.ui.UiListener;
|
||||||
*/
|
*/
|
||||||
public class InGameBuildHud {
|
public class InGameBuildHud {
|
||||||
private UiHandler ui;
|
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");
|
ui = new UiHandler("BuildMenu");
|
||||||
|
|
||||||
Vector2f size = new Vector2f(40,40);
|
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");
|
Sprite s1 = new Sprite("ApuButton","data/ui/apu_button.png");
|
||||||
s1.setSize(size);
|
s1.setSize(size);
|
||||||
apu.setButtonSprite(s1);
|
apuBuildButton.setButtonSprite(s1);
|
||||||
Sprite s2 = new Sprite("ApuButton_Selected","data/ui/apu_button_selected.png");
|
Sprite s2 = new Sprite("ApuButton_Selected","data/ui/apu_button_selected.png");
|
||||||
s2.setSize(size);
|
s2.setSize(size);
|
||||||
apu.setOnTopButtonSprite(s2);
|
apuBuildButton.setOnTopButtonSprite(s2);
|
||||||
apu.getNode().setLocation(new Vector2f(x,y));
|
apuBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*2),y));
|
||||||
apu.addListener(new UiListener(){
|
apuBuildButton.addListener(listener);
|
||||||
public void ActionEvent(UiComponent source){
|
ui.addUi(apuBuildButton);
|
||||||
System.out.println("apu");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ui.addUi(apu);
|
|
||||||
|
|
||||||
Button tank = new Button("TankButton", size);
|
tankBuildButton = new Button("TankButton", size);
|
||||||
Sprite s3 = new Sprite("TankButton","data/ui/tank_button.png");
|
Sprite s3 = new Sprite("TankButton","data/ui/tank_button.png");
|
||||||
s3.setSize(size);
|
s3.setSize(size);
|
||||||
tank.setButtonSprite(s3);
|
tankBuildButton.setButtonSprite(s3);
|
||||||
Sprite s4 = new Sprite("TankButton_Selected","data/ui/tank_button_selected.png");
|
Sprite s4 = new Sprite("TankButton_Selected","data/ui/tank_button_selected.png");
|
||||||
s4.setSize(size);
|
s4.setSize(size);
|
||||||
tank.setOnTopButtonSprite(s4);
|
tankBuildButton.setOnTopButtonSprite(s4);
|
||||||
tank.getNode().setLocation(new Vector2f(x+(size.getX()*2),y));
|
tankBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*4),y));
|
||||||
tank.addListener(new UiListener(){
|
tankBuildButton.addListener(listener);
|
||||||
public void ActionEvent(UiComponent source){
|
ui.addUi(tankBuildButton);
|
||||||
System.out.println("tank");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ui.addUi(tank);
|
|
||||||
|
|
||||||
Button bomber = new Button("TankButton", size);
|
bomberBuildButton = new Button("TankButton", size);
|
||||||
Sprite s5 = new Sprite("BomberButton","data/ui/bomber_button.png");
|
Sprite s5 = new Sprite("BomberButton","data/ui/bomber_button.png");
|
||||||
s5.setSize(size);
|
s5.setSize(size);
|
||||||
bomber.setButtonSprite(s5);
|
bomberBuildButton.setButtonSprite(s5);
|
||||||
Sprite s6 = new Sprite("BomberButton_Selected","data/ui/bomber_button_selected.png");
|
Sprite s6 = new Sprite("BomberButton_Selected","data/ui/bomber_button_selected.png");
|
||||||
s6.setSize(size);
|
s6.setSize(size);
|
||||||
bomber.setOnTopButtonSprite(s6);
|
bomberBuildButton.setOnTopButtonSprite(s6);
|
||||||
bomber.getNode().setLocation(new Vector2f(x+(size.getX()*4),y));
|
bomberBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*6),y));
|
||||||
bomber.addListener(new UiListener(){
|
bomberBuildButton.addListener(listener);
|
||||||
public void ActionEvent(UiComponent source){
|
ui.addUi(bomberBuildButton);
|
||||||
System.out.println("bomber");
|
}
|
||||||
}
|
|
||||||
});
|
public void update(){
|
||||||
ui.addUi(bomber);
|
queueSize.setText(""+player.getCC().getBuildQueueSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
public UiHandler getUi(){
|
public UiHandler getUi(){
|
||||||
|
|
@ -74,4 +88,36 @@ public class InGameBuildHud {
|
||||||
public Node getNode(){
|
public Node getNode(){
|
||||||
return ui.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());
|
hudNode.add(buildBar.getNode());
|
||||||
|
|
||||||
buildHud = new InGameBuildHud((int)(buildBack.getLocation().getX()-buildBack.getSize().getX()/4),
|
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());
|
hudNode.add(buildHud.getNode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -61,6 +61,9 @@ public class InGameHud {
|
||||||
money.setLocation(new Vector2f(LWJGLGameWindow.getWidth()-money.getBound().width,5));
|
money.setLocation(new Vector2f(LWJGLGameWindow.getWidth()-money.getBound().width,5));
|
||||||
|
|
||||||
player.addKredits(100);
|
player.addKredits(100);
|
||||||
|
buildBar.setValue(player.getCC().getBuildProgress());
|
||||||
|
|
||||||
|
buildHud.update();
|
||||||
|
|
||||||
hudNode.setLocation(new Vector2f(
|
hudNode.setLocation(new Vector2f(
|
||||||
LWJGLGameWindow.getCamera().getLocation().getX(),
|
LWJGLGameWindow.getCamera().getLocation().getX(),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package ei.game.scene.buildings;
|
package ei.game.scene.buildings;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Queue;
|
|
||||||
|
|
||||||
import ei.engine.math.Vector2i;
|
import ei.engine.math.Vector2i;
|
||||||
import ei.engine.scene.Node;
|
import ei.engine.scene.Node;
|
||||||
|
|
@ -17,7 +16,7 @@ import ei.game.scene.units.Unit;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class Building extends GameEntity{
|
public abstract class Building extends GameEntity{
|
||||||
private Queue<Unit> buildQueue;
|
private LinkedList<Unit> buildQueue;
|
||||||
private int buildTime;
|
private int buildTime;
|
||||||
private Node unitNode;
|
private Node unitNode;
|
||||||
private Vector2i oldPos;
|
private Vector2i oldPos;
|
||||||
|
|
@ -80,7 +79,41 @@ public abstract class Building extends GameEntity{
|
||||||
InGameState.getMap().setBuildPos(this, x, y, size);
|
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.
|
* Removes this building from the game.
|
||||||
*
|
*
|
||||||
|
|
@ -98,8 +131,7 @@ public abstract class Building extends GameEntity{
|
||||||
|
|
||||||
if(getLife()<=0) {
|
if(getLife()<=0) {
|
||||||
removeBuilding();
|
removeBuilding();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue