Slick2D Simple StateBasedGame无法正常工作

时间:2016-02-09 22:11:39

标签: java slick2d

我最近开始尝试使用像Slick2D这样的外部Java库。这是我第一次这样做,所以我基本上不知道我在做什么。

我尝试制作一个简单的StateBasedGame,它只显示一个显示三个选项的菜单栏。问题在于我的游戏' class,initStatesList()方法没有被调用,我不知道为什么不。这是代码:

游戏课

SELECT TheMonth, 
    SUM((CASE WHEN C.IsRevenue = 1 THEN MD.Amount ELSE -MD.Amount END)) AS TotalRevenue
FROM MonthData MD
    JOIN Code C ON C.Code = MD.Code
GROUP BY TheMonth

菜单类:

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

public class Game extends StateBasedGame {
    public Game(String title) {
        super(title);
    }

    public static void main(String[] args) {
        Game game = new Game("Text Based");
    }

    @Override
    public void initStatesList(GameContainer arg0) throws SlickException {
        System.out.println("InitStates");
        addState(new Menu());
    }
}

我不知道为什么它不起作用......

2 个答案:

答案 0 :(得分:1)

对不起,如果这有点晚了,但答案是:

public static void main(String[] args) {
    Game game = new Game("Text Based");
}

这不起作用。这就是我通常所说的:

    AppGameContainer appgc = new AppGameContainer(new Game("game"));
    appgc.setDisplayMode(1280, 720, false);
    appgc.setTargetFrameRate(59);
    appgc.setShowFPS(false);
    appgc.start();

所以你用一个新的" Game"制作一个AppGameContainer class,然后你可以设置分辨率,它是全屏,然后是目标fps,它是否应该显示fps,以及你可以做的其他一些事情。然后你开始吧。

希望这有助于:)

答案 1 :(得分:0)

我认为缺少的是在initStateList方法中缺少以下内容:

enterState(1);

所以你要添加你的州,但你没有进入它。 另外你需要FumbleWumble所说的,真正调用initStateList方法。