2014-10-17 66 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); 
    } 
}