我正在设计一个游戏,你到屏幕的边缘,屏幕将转移到一个新的面板相同的地图,类似于第一个塞尔达游戏。哪个方法会更高效或更有效,让线程使用重新绘制()运行,或者使用javax.swing.Timer并调用super.paintComponet更好?
发布于 2016-04-26 18:15:45
通常,对于简单的动画,您可以使用javax.swing.Timer,但它似乎您是一个更复杂的游戏。如果您继续使用swing.Timer,如果您的代码执行不够快,它可能会影响您的组件的绘制,从而导致您的UI无法响应。
您可以通过一个工作线程调用Thread.sleep(delay)来构建一个游戏循环并根据您想要的帧速率进行渲染--记住不要在事件调度线程中运行它,否则您的UI也会变得没有响应。
https://stackoverflow.com/questions/36871409
复制相似问题