所以,我正在用Java创建一个自上而下的2D游戏.
我遵循Java 2D:硬件加速 - 第2部分 - 缓冲策略的指令来利用硬件加速.
基本上,我在想的是:
我希望能够轻松地在地图上添加更多部分.所以我宁愿不去看看我看过的一些教程中建议的路线(每个地图图块都有一个周围图块的邻接列表;从中心图块开始,用广度优先搜索填充屏幕).
相反,我的想法是拥有屏幕大小的图块集合(例如32x32),每个屏幕"块"都有一个引用每个相邻集合的列表.然后,我将为当前屏幕和8个相邻屏幕创建一个缓冲区,并在VRAM缓冲区中绘制可见部分.
我的问题是,这是一个正确的方法来解决这个问题,还是有更好的选择?我查看了很多教程,但它们似乎都提供相同的(看似高维护)选项.
这似乎是一个更好的选择,因为在tile级别进行操作需要1024倍的邻接列表.另外,我考虑在VRAM中只放置可见部分,同时将"当前"屏幕及其相邻屏幕留在标准缓冲区中的原因是因为我是硬件加速新手,并不完全确定假设有多少空间可以接受可用.因为Java无论如何都试图加速标准缓冲区,理论上它应该和将每个缓冲区放在VRAM中一样快?
欢迎任何和所有建议!
使用JScrollPane的滚动条箭头滚动(或通过设置箭头键的键绑定)将视口移动一个增量,暂停,然后平滑滚动.我遇到的大多数滚动条表现相同; 有轻微的动作,暂停,然后更快的连续滚动.有没有办法避免暂停,以便从头到尾滚动顺畅?