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:
Ziver Koc 2007-03-29 23:21:00 +00:00
parent 448fca2fdf
commit 4e7722fedb
34 changed files with 597 additions and 95 deletions

View 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();
}
}