This is a big commit. Added mouse cursors and a load bar. Started whit the game. and many many other things
This commit is contained in:
parent
448fca2fdf
commit
4e7722fedb
34 changed files with 597 additions and 95 deletions
115
src/ei/game/gamestate/LoadingState.java
Normal file
115
src/ei/game/gamestate/LoadingState.java
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
package ei.game.gamestate;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
import ei.engine.LWJGLGameWindow;
|
||||
import ei.engine.math.Vector3f;
|
||||
import ei.engine.scene.Sprite;
|
||||
import ei.engine.sound.SoundLoader;
|
||||
import ei.engine.state.GameState;
|
||||
import ei.engine.state.GameStateManager;
|
||||
import ei.engine.texture.TextureLoader;
|
||||
|
||||
/**
|
||||
* This class handels the loading of the
|
||||
* images and sounds to the memmory.
|
||||
*
|
||||
* @author Ziver
|
||||
*/
|
||||
public class LoadingState extends GameState{
|
||||
// The things to load
|
||||
private Queue<String> loadTextures;
|
||||
private Queue<String> loadSounds;
|
||||
// The name of the next state to activate after loading
|
||||
private String nextState;
|
||||
|
||||
// Temp things for the loadingbar
|
||||
private int status;
|
||||
private Sprite bar;
|
||||
private Sprite loadBar;
|
||||
private Sprite background;
|
||||
|
||||
/**
|
||||
* Creates a loadingstate
|
||||
* @param name The name of the state
|
||||
*/
|
||||
public LoadingState(String name,String nextState) {
|
||||
super(name);
|
||||
this.nextState = nextState;
|
||||
status = 0;
|
||||
loadTextures = new LinkedList<String>();
|
||||
loadSounds = new LinkedList<String>();
|
||||
bar = new Sprite("Bar","data/loadbar_front.png");
|
||||
bar.setLocation(new Vector3f(
|
||||
(LWJGLGameWindow.getWidth()/2),
|
||||
(LWJGLGameWindow.getHeight()/2),0.0f));
|
||||
loadBar = new Sprite("LoadingBar","data/loadbar.png");
|
||||
loadBar.setLocation(new Vector3f(
|
||||
(LWJGLGameWindow.getWidth()/2)-loadBar.getWidth(),
|
||||
(LWJGLGameWindow.getHeight()/2)+3,0.0f));
|
||||
background = new Sprite("Bar","data/loadbar_back.png");
|
||||
background.setLocation(new Vector3f(
|
||||
(LWJGLGameWindow.getWidth()/2),
|
||||
(LWJGLGameWindow.getHeight()/2),0.0f));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a texture to be loaded
|
||||
* @param url
|
||||
*/
|
||||
public void addTexture(String url){
|
||||
loadTextures.add(url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a sound to be loaded
|
||||
* @param url
|
||||
*/
|
||||
public void addSound(String url){
|
||||
loadSounds.add(url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the things
|
||||
*/
|
||||
public void update() {
|
||||
if(!loadTextures.isEmpty()){
|
||||
TextureLoader.getTextureLoaderInstance().getTexture(loadTextures.poll());
|
||||
status++;
|
||||
}
|
||||
else if(!loadSounds.isEmpty()){
|
||||
SoundLoader.getInstnace().loadSound(loadSounds.poll());
|
||||
status++;
|
||||
}
|
||||
else{
|
||||
status++;
|
||||
if(status >= 100){
|
||||
//deactivate this state and activate the next one
|
||||
GameStateManager.getInstance().removeState(this);
|
||||
GameStateManager.getInstance().setActive(nextState);
|
||||
}
|
||||
|
||||
}
|
||||
background.update();
|
||||
loadBar.update();
|
||||
bar.update();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the load bar
|
||||
*/
|
||||
public void render() {
|
||||
// Calculate the procentage
|
||||
float procent = (float)status/100;//(loadTextures.size()+loadSounds.size());
|
||||
System.out.println("lol: "+procent);
|
||||
loadBar.setLocation(new Vector3f(
|
||||
(LWJGLGameWindow.getWidth()/2)-loadBar.getWidth()+(loadBar.getWidth()*procent),
|
||||
(LWJGLGameWindow.getHeight()/2)+6,0.0f));
|
||||
//render the bar
|
||||
background.render();
|
||||
loadBar.render();
|
||||
bar.render();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue