我最近开始尝试使用像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());
}
}
我不知道为什么它不起作用......
答案 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方法。