当我在setBackground()时,Slick2d java游戏崩溃了;

时间:2013-08-16 21:53:30

标签: java lwjgl slick2d

我在我的Java应用程序中使用slick2d。在我的render方法中,我使用了一个名为changeBackground();

的方法
@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g)
        throws SlickException {
changeBackground(g);
}

changeBackground();

public void changeBackground(Graphics g) throws SlickException{
    Thread.sleep(500);
    g.setBackground(new org.newdawn.slick.Color(0, 255, 0);
    Thread.Sleep(500);
    g.setBackground(new org.newdawn.slick.Color(255, 0, 0);
    changeBackground(g);
}

当我运行我的应用程序时,游戏崩溃。

1 个答案:

答案 0 :(得分:3)

你可能正在堆叠溢出。

public void changeBackground(Graphics g) throws SlickException{
    Thread.sleep(500);
    g.setBackground(new org.newdawn.slick.Color(0, 255, 0);
    Thread.Sleep(500);
    g.setBackground(new org.newdawn.slick.Color(255, 0, 0);
    changeBackground(g); // you're calling this funct again!  BAD
}

删除最后一行,希望你不会在那个地方崩溃。