我从各种教程中学到了在JFrame上使用Canvas为2D游戏引擎渲染图像。我不得不创建一个BufferStrategy来保持图像平滑等等,但最近我听说使用JPanel来渲染图像。我应该使用JPanel吗?如果是这样,我还需要创建BufferStrategy还是集成它。我真的被误导了,我甚至有意义吗?我是一个初学者,所以请随意尝试纠正我并指导我 - 由于某种原因,我对此非常不知所措:P谢谢。
答案 0 :(得分:1)
使用"活跃的绘画"。它可以直接控制什么时候被绘制
使用"被动绘画"。有一个RepaintManager
可以控制调度的时间和内容,这会被发布到事件调度线程中,并与所有其他事件一起处理。
通过相同的渲染管道链接,通常是DirectX或OpenGL
取决于。大多数游戏引擎必须以Canvas
开头,因为这通常是将Java链接到底层渲染引擎的唯一方法。大多数游戏引擎都是低级本机绑定或轻量级的DirectX或OpenGL,让您直接访问这些API(in)
有些引擎可能仍会直接使用Swing,但它们会受到限制,可能适用于您不需要3D或高/一致帧速率的情况。
这是个人意见的问题。你需要一个恒定的帧速率吗?你想做3D还是足够2D?您想要执行低级功能(纹理操作等)吗?