我在java中开始一个非常简单的游戏,但我已经停留在第一步。我做了一个StateBasedGame类(Kreations),它成功地添加并进入我的BasicGameState(MenuGameState)。然而,MenuGameState的update()和render()方法没有被调用,我无法找出原因。你能帮我吗? 这里下面的代码:渲染不是在BasicGameState中调用的
StateBasedGame:
import gamestates.MenuGameState;
import org.newdawn.slick.*;
import org.newdawn.slick.state.StateBasedGame;
public class Kreations extends StateBasedGame
{
public Kreations() {
super("Kreations");
}
@Override
public void update(GameContainer gc, int delta) throws SlickException
{
}
@Override
public void render(GameContainer gc, Graphics g) throws SlickException
{
}
public static void main(String[] args) throws SlickException
{
try {
AppGameContainer container = new AppGameContainer(new Kreations());
container.setDisplayMode(800,600,false);
//Make sure the logic updates consistently
container.setMinimumLogicUpdateInterval(20);
container.setMaximumLogicUpdateInterval(20);
container.start();
} catch (SlickException e) {
e.printStackTrace();
}
}
@Override
public void initStatesList(GameContainer gc) throws SlickException {
this.addState(new MenuGameState());
}
}
BasicGameState:
package gamestates;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
public class MenuGameState extends BasicGameState {
public static final int ID = GameStates.MAIN_MENU.ordinal();
@Override
public void init(GameContainer gc, StateBasedGame sbg)
throws SlickException {
}
@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g)
throws SlickException {
g.drawString("Hello World", 100, 100);
}
@Override
public void update(GameContainer gc, StateBasedGame sbg, int delta)
throws SlickException {
}
@Override
final public int getID() {
// TODO Auto-generated method stub
return GameStates.MAIN_MENU.ordinal();
}
public void enter(GameContainer container, StateBasedGame game) throws SlickException {
System.out.print("MenuGameState.enter() is called");
}
}