我从各种教程中学习使用JFrame顶部的Canvas来渲染2D游戏引擎的图像。我不得不创建一个BufferStrategy来保持图像的平滑等,但最近我听说使用JPanel来渲染图像。我应该使用JPanel吗?如果是这样,我还需要创建一个BufferStrategy还是集成了它。我是否真的误导了我,我是否有道理?我是一名初学者,所以请随时尝试纠正我并指导我 - 由于某种原因,我非常不知所措:P谢谢。为2D游戏引擎(和缓冲?)使用Canvas和JPanel之间的差异
0
A
回答
1
BufferedStrategy
使用“活动绘画”。它给你当某样东西画
- 提供超过帧速率更好的控制直接控制
- 具有低级别的连接,并提供访问,硬件加速
摇摆
使用“被动绘画”。有一个RepaintManager
这是控制时间安排,什么被绘制,这是张贴到事件调度线程和得到的处理与所有其他事件。
- 涂装系统
- 可变帧频
两个
通过相同的渲染管线相连,通常,这是DirectX或OpenGL的
游戏没有直接控制引擎
取决于。大多数游戏引擎必须以Canvas
开头,因为这通常是将Java链接到底层渲染引擎的唯一方式。大多数游戏引擎都是低级原生绑定或DirectX或OpenGL的轻量级打包,可直接访问这些API(in)
几个引擎可能仍然直接使用Swing,但它们会受到限制,可能适用于您不需要3D或高/一致的帧速率。
Chooice
这是个人观点。你需要一个固定的帧速率吗?你想做3D还是2D足够?你想执行低级功能(纹理操作等)?