0

我在我的 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);
}

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

4

1 回答 1

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
}

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

于 2013-08-16T21:57:16.533 回答