Added ui to the engine and buttons and implemented them in the game fixed also a mouse position problem

This commit is contained in:
Ziver Koc 2007-04-24 21:41:31 +00:00
parent 515281351c
commit 728a68cc48
35 changed files with 436 additions and 23 deletions

View file

@ -0,0 +1,77 @@
package ei.game.hud;
import ei.engine.math.Vector2f;
import ei.engine.scene.Node;
import ei.engine.scene.Sprite;
import ei.engine.ui.Button;
import ei.engine.ui.UiComponent;
import ei.engine.ui.UiHandler;
import ei.engine.ui.UiListener;
/**
* This class handels the build buttons for the units
* @author Ziver
*
*/
public class InGameBuildHud {
private UiHandler ui;
public InGameBuildHud(int x ,int y){
ui = new UiHandler("BuildMenu");
Vector2f size = new Vector2f(40,40);
Button apu = new Button("TankButton", size);
Sprite s1 = new Sprite("ApuButton","data/ui/apu_button.png");
s1.setSize(size);
apu.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);
Button tank = new Button("TankButton", size);
Sprite s3 = new Sprite("TankButton","data/ui/tank_button.png");
s3.setSize(size);
tank.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);
Button bomber = new Button("TankButton", size);
Sprite s5 = new Sprite("BomberButton","data/ui/bomber_button.png");
s5.setSize(size);
bomber.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);
}
public UiHandler getUi(){
return ui;
}
public Node getNode(){
return ui.getNode();
}
}

View file

@ -9,11 +9,18 @@ import ei.engine.scene.Node;
import ei.engine.scene.Sprite;
import ei.game.player.Player;
/**
* This clas handles the hud of the game
* @author Ziver
*
*/
public class InGameHud {
private Node hudNode;
private BitmapText money;
private Player player;
private ProgressBar buildBar;
private InGameBuildHud buildHud;
private Sprite buildBack;
public InGameHud(Player p){
player = p;
@ -30,7 +37,7 @@ public class InGameHud {
money.setLocation(new Vector2f(LWJGLGameWindow.getWidth()-money.getBound().width,5));
hudNode.add(money);
Sprite buildBack = new Sprite("BuildBackground","data/hud/buildmenu.png");
buildBack = new Sprite("BuildBackground","data/hud/buildmenu.png");
buildBack.setLocation(new Vector2f(
LWJGLGameWindow.getWidth()/2,
LWJGLGameWindow.getHeight()-buildBack.getSize().getY()/2));
@ -43,6 +50,10 @@ public class InGameHud {
LWJGLGameWindow.getWidth()/2+50,
LWJGLGameWindow.getHeight()-55));
hudNode.add(buildBar.getNode());
buildHud = new InGameBuildHud((int)(buildBack.getLocation().getX()-buildBack.getSize().getX()/4),
(int)(buildBack.getLocation().getY()+10));
hudNode.add(buildHud.getNode());
}
public void update(){
@ -59,4 +70,12 @@ public class InGameHud {
public Node getNode(){
return hudNode;
}
public InGameBuildHud getBuildHud(){
return buildHud;
}
public Sprite getBuildBar(){
return buildBack;
}
}