大多数游戏每帧重绘整个背景,然后在其上重绘所有精灵。
如果你的背景只是一个大图像,那么这是非常有效的(因为内存 - >内存图像副本非常快)。
保持2D游戏中滚动的感觉:
- 定义一对坐标(scrollX,scrollY),用于存储屏幕左上角的当前滚动位置。
- 只要您想滚动(例如关注播放器)
,您就可以更新scrollX和ScrollY
- 为每个精灵提供相对于游戏世界(即游戏背景)和不相对于屏幕位置的坐标(spriteX,spriteY)。滚动后,您无需更改这些数字....
- 然后你需要在屏幕位置(-scrollX,-scrollY)和每个精灵(spriteX-scrollX,spriteY-scrollY)绘制背景。
- Java应该为您处理屏幕剪辑。但是如果您的游戏世界和背景很大,那么您可能需要一些额外的技术来避免尝试绘制屏幕外对象的开销(这将在游戏开发术语中称为“视图截顶剔除”)