我想在JFrame中集成光滑。 但我面临以下问题: 1.当我试图关闭框架时,它会停止光滑的游戏而不是框架。
请查看我的代码如下:
CanvasGameContainer canvasGameContainer1 = new CanvasGameContainer(new MainGame("Game 1"));
canvasGameContainer1.setBounds(20, 20, 400, 400);
newFrame = new JFrame("With JFrame");
newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
newFrame.add(canvasGameContainer1);
newFrame.setVisible(true);
canvasGameContainer1.start();
我在光滑的论坛上发布了同样但没有解决方案。 这是a link同样的......
答案 0 :(得分:0)
我不知道为什么你需要将它包装在JFrame中。您是否还在应用程序中添加菜单(例如,不是在游戏容器中渲染它们)?我想我的问题是,为什么要将它包装在一个JFrame中开始 - 也许有一个特定的用例,我没想到?你可以偶然发布截图吗?
我认为混合窗口套件可能会有问题。我只是创建一个AppGameContainer的实例,并将全屏选项设置为false
。结果,Slick给了我一个带有关闭按钮的窗口。当我点击关闭按钮时,应用程序正常关闭。
我只是在Mac OS X 10.6上使用JDK 6正式测试了这个,但理论上它应该适用于其他地方。
这是我初始化容器的文件和代码:
https://github.com/normalocity/pedestrians/blob/master/src/StartPedestrians.java
AppGameContainer container = new AppGameContainer(pedSim);
container.setDisplayMode(800, 600, false);
答案 1 :(得分:0)
我知道这是一篇很老的帖子,但是如果有些人仍在努力解决框架没有关闭的问题,这里有一个适用于Windows的解决方案:
defaultCloseOperation
设置为DISPOSE_ON_CLOSE
WindowClosing
事件中,处置GameContainer
WindowClosed
事件中,calll System.exit(0)