【发布时间】:2018-11-10 01:33:42
【问题描述】:
我有一个游戏系统,但我不知道应该用什么来显示它。我正在制作一个垂直射击游戏,我已经为所有控制敌人和玩家的类编写了方法,但我不知道如何有效地展示游戏。我在想一个 Canvas,它会重新绘制每一帧,但这真的是最有效的方法吗?
重要细节:
- 理想帧率:25fps
- 这是一款 2d 游戏
- 屏幕上任何时候都有 25-100 个对象,所有对象都在移动
- 所有显示的对象都是图像,都是 PNG 格式
- 窗口为 640 x 480 像素
- 现在所有图像都作为 BufferedImage 加载,尽管我可以轻松更改此设置
7.我需要一个坐标平面。如果不完全重构我的代码,这是唯一无法更改的基本部分。
最重要的是我设置好所有东西的方式,每一帧所有对象都在我设计的坐标平面中移动和交互(处理碰撞检测和移动,没有图形组件),然后一切都应该绘制到屏幕上,只需通过 ArrayLists 跟踪所有移动对象并一一绘制它们。
【问题讨论】:
-
这款游戏是 2d 还是 3d 游戏?
-
我什至不确定你是否可以将 png 与
Graphics2D一起使用,但我很快检查了一下,它看起来与javax.imageio和java.awt.image.BufferedImage一起使用。 -
在这个时代不要使用
Canvas。 Swing 等效项将是JComponent或(如果 UI 将自定义绘画与布局组件混合)JPanel。