2017-04-16 56 views
0

我从各种教程中学习使用JFrame顶部的Canvas来渲染2D游戏引擎的图像。我不得不创建一个BufferStrategy来保持图像的平滑等,但最近我听说使用JPanel来渲染图像。我应该使用JPanel吗?如果是这样,我还需要创建一个BufferStrategy还是集成了它。我是否真的误导了我,我是否有道理?我是一名初学者,所以请随时尝试纠正我并指导我 - 由于某种原因,我非常不知所措:P谢谢。为2D游戏引擎(和缓冲?)使用Canvas和JPanel之间的差异

回答

1

BufferedStrategy

使用“活动绘画”。它给你当某样东西画

  • 提供超过帧速率更好的控制直接控制
  • 具有低级别的连接,并提供访问,硬件加速

摇摆

使用“被动绘画”。有一个RepaintManager这是控制时间安排,什么被绘制,这是张贴到事件调度线程和得到的处理与所有其他事件。

  • 涂装系统
  • 可变帧频

两个

通过相同的渲染管线相连,通常,这是DirectX或OpenGL的

游戏没有直接控制引擎

取决于。大多数游戏引擎必须以Canvas开头,因为这通常是将Java链接到底层渲染引擎的唯一方式。大多数游戏引擎都是低级原生绑定或DirectX或OpenGL的轻量级打包,可直接访问这些API(in)

几个引擎可能仍然直接使用Swing,但它们会受到限制,可能适用于您不需要3D或高/一致的帧速率。

Chooice

这是个人观点。你需要一个固定的帧速率吗?你想做3D还是2D足够?你想执行低级功能(纹理操作等)?

有益的参考