游戏开发中的像素级滚动与对象添加技术
1. 像素级滚动与子图块滚动
在游戏开发中,之前的场景移动方式通常是一次移动一个图块,即一次移动一整行或一整列。这种方式在快速从游戏关卡的一个位置传送到另一个位置时很有效,但对于游戏世界中单个角色的移动,我们需要更慢、更精确的滚动形式,即像素级滚动。为了实现这一点,我们需要引入一个新特性——滚动缓冲区。
1.1 子图块滚动的原理
实现动态子图块滚动引擎的关键是在内存中使用第三个缓冲区(屏幕和后缓冲区是前两个),在这个缓冲区上,图块会根据当前的滚动位置进行绘制。“动态”指的是图块引擎根据游戏世界中特定点的需求进行绘制,而“子图块”则是指它通过绘制完整图块和部分图块来填充边界。
为了跟踪滚动位置,我们使用一个名为 scrollPos 的 Point 变量。当直接绘制图块时,这些变量能提供图块从左到右、从上到下开始绘制的精确位置。例如,如果滚动位置是 (500, 500) ,这意味着地图中指定的图块应从游戏世界中 500 x 500 点的位置开始,绘制在屏幕的左上角。
1.2 绘制滚动缓冲区
在将当前滚动位置的图块填充到滚动缓冲区后,下一步是将滚动缓冲区绘制到屏幕上。滚动缓冲区只填充了完整的图块,但在将其绘制到屏幕时会考虑部分图块。我们使用 subtile 这个 Point 变量来存储取模运算的结果,这些值将作为复制到屏幕的滚动缓冲区的左上角位置。
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



