evil-inside/src/ei/game/gamestate/EndGameState.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();
}
}
}
}