Java滚动背景

你会如何在Java中滚动背景,让它看起来像一个精灵正在移动? 我正在使用Applet。 有没有比让游戏中的所有对象向左或向右移动更有效的方法?

大多数游戏每帧重绘整个背景,然后在其上重绘所有精灵。

如果你的背景只是一个大图像,那么这是非常有效的(因为内存 – >内存图像复制速度非常快)。

为了保持在2D游戏中滚动的感觉:

  • 定义一对坐标(scrollX,scrollY),用于存储屏幕左上角的当前滚动位置。
  • 您可以随时更新scrollX和ScrollY(例如关注播放器)
  • 给每个精灵一个与游戏世界相关的坐标(spriteX,spriteY)(即游戏背景),而不是相对于屏幕位置。 滚动时,您无需更改这些数字….
  • 然后你需要在屏幕位置(-scrollX,-scrollY)和每个精灵(spriteX-scrollX,spriteY-scrollY)绘制背景。
  • Java应该为您处理屏幕剪辑。 但是如果您的游戏世界和背景很大,那么您可能需要一些额外的技术来避免尝试绘制屏幕外对象的开销(这在游戏开发术语中称为“视图截顶剔除”)