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

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


换背景();

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


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

最佳答案

您可能正在堆栈溢出。

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
}


删除最后一行,希望您不会在该位置崩溃。

09-27 17:11