0

私は Java で非常に単純なゲームを開始していますが、最初のステップで既に立ち往生しています。StateBasedGame クラス (Kreations) を作成しました。このクラスは、私の BasicGameState (MenuGameState) を正常に追加して入力し、初期化します。ただし、MenuGameState の update() および render() メソッドは呼び出されません。理由がわかりません。手伝ってくれますか?コードは次のとおりです。

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

基本ゲーム状態:

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");
       }

}
4

2 に答える 2