2014-10-17 125 views
2

我正在嘗試爲我製作的遊戲構建關卡編輯器。我想要的是在Swing JPanel中運行遊戲。這是我如何做到的。Swing/libgdx關卡編輯器

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

所以這就是問題所在。當我將MyGame作爲LwjglApplication運行時,它的運行速度大約爲60 fps。 但是,當我在JPanel中顯示它時,它以超過1000 fps的速度運行,並佔用太多的CPU。

有沒有辦法解決,所以它不會使用這麼多的CPU。我對Swing沒有太多經驗,我應該使用別的東西。

+0

我也沒有太多的經驗,但這裏有一些很酷的http://jmonkeyengine.org/ – 2014-10-17 09:57:19

回答

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