2014-10-17 2 views
2

나는 만들고있는 게임의 레벨 편집기를 빌드하려고합니다. 내가 원하는 건 스윙 JPanel에서 게임을 실행하는 것입니다. 여기 내가 어떻게 그랬는가.스윙/libgdx 수준 편집기

public class GamePanel extends JPanel {  
    public GamePanel() {  
     setLayout(new BorderLayout());  
     canvas = new LwjglAWTCanvas(new MyGame());  
     add(canvas.getCanvas(), BorderLayout.CENTER); 
    } 
} 

그래서 이것이 문제입니다. MyGame을 LwjglApplication으로 실행하면 약 60fps로 실행됩니다. 하지만 JPanel에서 표시 할 때 1000fps 이상으로 실행되고 너무 많은 CPU가 필요합니다.

고칠 수있는 방법이 없으므로 CPU를 많이 사용하지 않을 것입니다. 나는 다른 것을 사용해야한다면 스윙에 대한 많은 경험이 없다.

+0

나는 많은 경험이 없지만 여기는 멋진 http://jmonkeyengine.org/입니다. –

답변

0

LibGDX에는 프레임 율 제한이 없습니다. 가능한 가장 높은 프레임 속도로 실행됩니다. 따라서 메인 루프에 다음과 같은 것을 넣는 것이 더 좋습니다 :

Thread.sleep((long)(1000/60-Gdx.graphics.getDeltaTime())); 

원하는 프레임 율과 voilà로 60을 변경할 수 있습니다!

0

프레임 속도를 제한하도록 데스크톱 구성을 설정할 수 있습니다. 예 :

public class DesktopLauncher { 
    public static void main (String[] arg) { 
     LwjglApplicationConfiguration config = 
       new LwjglApplicationConfiguration(); 
     config.foregroundFPS = 60; 
     new LwjglApplication(new MyGdxGame(), config); 
    } 
}