evil-inside/src/ei/game/gamestate/EndGameState.java

69 lines
1.6 KiB
Java
Raw Normal View History

2007-05-07 11:33:49 +00:00
package ei.game.gamestate;
import ei.engine.LWJGLGameWindow;
import ei.engine.effects.Fade;
2007-05-07 11:53:54 +00:00
import ei.engine.math.Vector3f;
2007-05-07 11:33:49 +00:00
import ei.engine.scene.Sprite;
import ei.engine.state.GameState;
import ei.engine.state.GameStateManager;
public class EndGameState extends GameState{
public static final int VICTORY = 0;
public static final int DEFEAT = 1;
private Fade fade;
private int status;
private int timer;
public EndGameState(String name, int status){
2007-05-07 13:03:05 +00:00
super(name,LWJGLGameWindow.getCamera());
2007-05-07 11:33:49 +00:00
this.status = status;
}
@Override
public void init() {
fade = new Fade("EGameStateFade");
fade.fadeOut(false);
switch(status){
case VICTORY:
Sprite v = new Sprite("Victory","data/victory.png");
2007-05-07 11:53:54 +00:00
v.setLocation(new Vector3f(
(LWJGLGameWindow.getWidth()/2),
(LWJGLGameWindow.getHeight()/2),0.0f));
2007-05-07 11:33:49 +00:00
fade.setEntity(v);
break;
case DEFEAT:
Sprite d = new Sprite("Defeat","data/defeat.png");
2007-05-07 11:53:54 +00:00
d.setLocation(new Vector3f(
(LWJGLGameWindow.getWidth()/2),
(LWJGLGameWindow.getHeight()/2),0.0f));
2007-05-07 11:33:49 +00:00
fade.setEntity(d);
break;
}
}
@Override
public void render() {
fade.render();
}
@Override
public void update() {
fade.update();
if(fade.isDone() && timer <= 120){
timer++;
}
else if(fade.isDone() && timer > 120){
GameStateManager.getInstance().removeState(this);
if(GameStateManager.getInstance().getState("MenuState") != null){
GameStateManager.getInstance().removeStateByName("InGameState");
GameStateManager.getInstance().setActive("MenuState");
}
else{
LWJGLGameWindow.exit();
}
}
}
}