Java滚动背景

Jim*_*mmt 2 java scroll

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

mik*_*era 6

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

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

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

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