我在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
}
删除最后一行,希望您不会在该位置崩溃。