69 lines
1.8 KiB
Java
69 lines
1.8 KiB
Java
package ei.game.gamestate;
|
|
|
|
import ei.engine.LWJGLGameWindow;
|
|
import ei.engine.effects.Fade;
|
|
import ei.engine.math.Vector3f;
|
|
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){
|
|
super(name,LWJGLGameWindow.getCamera());
|
|
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");
|
|
v.setLocation(new Vector3f(
|
|
(LWJGLGameWindow.getWidth()/2+LWJGLGameWindow.getCamera().getLocation().getX()),
|
|
(LWJGLGameWindow.getHeight()/2+LWJGLGameWindow.getCamera().getLocation().getY()),0.0f));
|
|
fade.setEntity(v);
|
|
break;
|
|
case DEFEAT:
|
|
Sprite d = new Sprite("Defeat","data/defeat.png");
|
|
d.setLocation(new Vector3f(
|
|
(LWJGLGameWindow.getWidth()/2+LWJGLGameWindow.getCamera().getLocation().getX()),
|
|
(LWJGLGameWindow.getHeight()/2+LWJGLGameWindow.getCamera().getLocation().getY()),0.0f));
|
|
fade.setEntity(d);
|
|
break;
|
|
}
|
|
InGameState.input(false);
|
|
}
|
|
|
|
@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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|