evil-inside/src/ei/game/gamestate/InGameState.java
Jesper Lundin 6eb1ec9a63
2007-05-07 18:18:22 +00:00

104 lines
2.6 KiB
Java

package ei.game.gamestate;
import ei.engine.scene.Node;
import ei.engine.sound.Sound;
import ei.engine.sound.SoundManager;
import ei.engine.state.GameState;
import ei.game.hud.InGameHud;
import ei.game.input.InGameKeyboardInput;
import ei.game.input.InGameMouseInput;
import ei.game.player.AiPlayer;
import ei.game.player.HumanPlayer;
import ei.game.player.PlayerHandler;
import ei.game.scene.Map;
import ei.game.scene.units.APU;
import ei.game.scene.units.Tank;
import ei.game.scene.weapons.WeaponHandler;
public class InGameState extends GameState{
private Node rootNode;
private InGameHud hud;
private static Map map;
private Sound music;
private static InGameMouseInput mouse;
private static InGameKeyboardInput keyboard;
public InGameState(String name){
super(name);
}
@Override
public void init() {
PlayerHandler.getInstance().clear();
WeaponHandler.getInstance().clear();
SoundManager.getInstnace().clear();
rootNode = new Node("InGameNode");
map = new Map(20,20);
map.init("data/map/default");
HumanPlayer player = new HumanPlayer();
mouse = new InGameMouseInput(map,player);
keyboard = new InGameKeyboardInput();
super.getInput().addInput(mouse);
super.getInput().addInput(keyboard);
player.addUnit(new Tank(0, 0, player));
player.addUnit(new Tank(1,0, player));
player.addUnit(new Tank(2,0, player));
player.addUnit(new APU(4, 0, player));
player.addUnit(new APU(5, 0, player));
PlayerHandler.getInstance().addPlayer(player);
AiPlayer ai = new AiPlayer();
ai.addUnit(new Tank(29,33, ai));
ai.addUnit(new Tank(30,33, ai));
ai.addUnit(new APU(31, 33, ai));
ai.addUnit(new APU(32, 33, ai));
PlayerHandler.getInstance().addPlayer(ai);
rootNode.add(map.getMapNode());
rootNode.add(PlayerHandler.getInstance().getNode());
rootNode.add(WeaponHandler.getInstance().getNode());
hud = new InGameHud(player);
mouse.setHud(hud);
rootNode.add(hud.getNode());
music = new Sound("music", "data/sounds/ei.ogg");
music.loop();
}
/**
* Renders the gamestate
*/
public void render() {
rootNode.render();
}
/**
* Updates the gamestate
*/
public void update() {
PlayerHandler.getInstance().update();
WeaponHandler.getInstance().update();
hud.update();
rootNode.update();
}
/**
*Returns the map of the game
*
* @return The map of the game
*/
public static Map getMap() {
return map;
}
public static void input(boolean b){
mouse.setEnabled(b);
keyboard.setEnabled(b);
}
}