这是一个最近困扰我的话题.
在JFrame中创建游戏时,如果要使用paintComponent()-method将图形添加到JPanel中,您将如何为游戏提供不同的阶段?哪种表现最好?
我能想到的两种方式是:
paintComponent()方法和计时器的面板.一个不同的面板将用于游戏的每个阶段(等级等).paintComponent()-method中,则使用if语句说明if(gameover)然后为此阶段的游戏绘制图形.或者还有其他更好的方法吗?
jef*_*unt 16
"放弃所有希望,你们[通过Swing创造游戏]进入!"
要回答你的问题,JPanels只是一个可以画画的表面,比如黑板或纸张.它们与阶段无关,或者除了可以绘制的东西之外的任何其他东西,以及其他子组件的容器.
为了解决游戏特定的问题,我建议你不要浪费时间使用Swing组件来构建游戏界面.虽然这是可能的,但是你会遇到一堆性能问题,这会耗费你的时间.基于你的问题,你已经在考虑像计时器这样的低级别事情来安排事情,并覆盖paintComponent()方法 - 这是一个非常常见的错误,以及许多失败项目花费时间的道路,只是为了找出它不是最好的方法.
如果您的问题实际上是您可以看到的森林中的路径,您会注意到以下事项:
相反,使用Slick2D(用于2D游戏)或jMonkeyEngine用于3D shtuff.这些库专门用于构建游戏,并且可以帮助您免于重新发明众所周知的轮子,只是为了让您的游戏得以进行.他们还有自己的社区,可以帮助您解决特定于图书馆的问题.
最重要的是,他们已经解决了一些最棘手的跨平台问题,比如处理各种版本的OpenGL,以及其他技术细节,我敢打赌你在一天结束时并不真正关心,你真正想要的是,"嘿,只要给我一个[任意分辨率],图形加速表面来画画,不要让它变得复杂!"
| 归档时间: |
|
| 查看次数: |
2379 次 |
| 最近记录: |