【发布时间】:2011-08-13 04:02:07
【问题描述】:
所以,我正在用 Java 创建一个 2d 自上而下的游戏。
我正在按照Java 2D: Hardware Accelerating - Part 2 - Buffer Strategies 的说明来利用硬件加速。
基本上,我的想法是这样的:
我希望能够轻松地向地图添加更多部分。所以我宁愿不走我看过的一些教程中建议的路线(每个地图图块都有一个周围图块的邻接列表;从中心图块开始,使用广度优先搜索填充屏幕)。
相反,我的想法是拥有屏幕大小的图块集合(为简单起见,例如 32x32),并且这些屏幕“块”中的每一个都会有一个引用每个相邻集合的列表。然后,我会为当前屏幕和相邻的 8 个屏幕创建一个缓冲区,并在 VRAM 缓冲区中绘制可见部分。
我的问题是,这是解决此问题的正确方法,还是有更好的选择?我浏览了很多教程,但它们似乎都提供了相同的(看似高维护)选项。
这似乎是一个更好的选择,因为在 tile 级别执行操作将需要 1024 倍的邻接列表。另外,我考虑只将可见部分放在 VRAM 中,而将“当前”屏幕及其相邻屏幕留在标准缓冲区中的原因是因为我是硬件加速的新手,并且不完全确定可以接受多少空间可用。因为 Java 无论如何都试图加速标准缓冲区,理论上它应该与将每个缓冲区都放入 VRAM 一样快?
欢迎提出任何建议!
【问题讨论】:
标签: java swing bufferedimage graphics2d hardware-acceleration