2013-08-16 2 views
0

저는 Java 응용 프로그램에서 slick2d를 사용하고 있습니다. 내 렌더링 방법에서는 changeBackground()라는 메서드를 사용합니다.Slick2d 자바 게임이 충돌 할 때 setBackground();

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

나는 게임 충돌이 내 응용 프로그램을 실행할 때.

답변

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 
} 

마지막 줄을 제거하고 그 자리에서 충돌하지 않기를 바랍니다.

+2

SO에 너무 재귀;) +1 –