Java:使用2D数组绘制网格到屏幕,没有滞后/屏幕闪烁

时间:2018-03-20 23:24:42

标签: java arrays performance graphics conceptual

我正在尝试用Java创建一个非常简单的自上而下的游戏,但我不确定如何解决处理程序性能的问题。

我使用2D数组来存储表示某些事物的某些值,例如周围环境和玩家的位置。然后我使用paint()方法根据2D数组的一部分将网格绘制到屏幕上。玩家总是在网格的中心。我编码使得玩家永远不会真正“移动”,而是他周围的环境“移动”(如果你按一个键向上移动,则绘制一个与上一节相同的阵列的新部分,除了它在顶部有一个新行,最底部的行现在是过去部分的第二到底行,一直是玩家留在中心,如果有意义的话。)

因此,我们遇到的情况是,每次玩家移动时都需要重新绘制整个屏幕。正如您可能已经收集的那样,这对于程序的性能是不利的,因为它必须遍历2D数组并在每次调用repaint()时将其绘制到屏幕上。如果用户按下键连续向上移动两次,程序将滞后,屏幕将重新绘制整个数组部分时闪烁。

我是如何改善性能问题的,因为我想让玩家始终处于屏幕中心并让环境在他身边移动?我应该改为调查Jscrollpanes吗?是在paint()方法中迭代数组而不是去哪里?

非常感谢您的时间和帮助缺乏经验的程序员。

0 个答案:

没有答案