java - slick2d - statebasedgame错误 - 当前线程中找不到OpenGL上下文

时间:2014-04-25 19:37:37

标签: java opengl slick2d

我刚开始玩slick2d的基于状态的游戏结构。我按如下方式设置了主要课程

    public static final int newMenu = 0;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        AppGameContainer appgc;
        try {
            appgc = new AppGameContainer(new StateBased("StateBased Test"));
            appgc.setDisplayMode(640, 360, false);
            appgc.start();
        } catch (SlickException e) {
        }
    }

    public StateBased(String name) throws SlickException {
        super(name);
        this.addState(new NewMenu(newMenu));
    }

    @Override
    public void initStatesList(GameContainer gc) throws SlickException {
        this.getState(newMenu).init(gc, this);
    }

现在到目前为止新的菜单类已经

    private final int state;
    private final Image bg;
    private final static String directory = "Images/StartScreen/";

    public NewMenu(int state) throws SlickException {
        this.state = state;
        bg = new Image(directory + "loadbg.png");
    }

但我在“bg = new image”行遇到错误。 “当前线程中没有找到OpenGL上下文。”我很困惑因为我在使用basicgame而不是statebasedgame

时没有这个

任何人都可以帮我解决这个问题

这是完整的错误

  

线程“main”中的异常java.lang.RuntimeException:没有OpenGL   在当前线程中找到的上下文。在   或者.gwon。   org.lwjgl.opengl.GL11.glGetError(GL11.java:1299)at at   org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glGetError(ImmediateModeOGLRenderer.java:384)     在   org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:249)     在   org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:187)     在org.newdawn.slick.Image。(Image.java:192)at   org.newdawn.slick.Image。(Image.java:166)at   org.newdawn.slick.Image。(Image.java:154)at   org.newdawn.slick.Image。(Image.java:132)at   statebased.NewMenu。(NewMenu.java:23)at   statebased.StateBased。(StateBased.java:36)     在   statebased.StateBased.main(StateBased.java:27)

1 个答案:

答案 0 :(得分:1)

通过将代码从构造函数移动到init方法

来解决