如何在 Java 中滚动背景,使其看起来像 Sprite 在移动?我正在使用小程序。有没有比让游戏中的所有对象向左或向右移动更有效的方法?
最佳答案
大多数游戏每帧都会重新绘制整个背景,然后在其上重新绘制所有 Sprite 。
如果您的背景只是一个大图像,那么这会非常高效(因为内存-> 内存图像复制非常快)。
在 2D 游戏中保持滚动的感觉:
- 定义一对坐标(scrollX, scrollY),存储当前屏幕左上角的滚动位置。
- 您可以在需要滚动时更新 scrollX 和 ScrollY(例如,跟随玩家)
- 为每个 Sprite 指定一个相对于游戏世界(即游戏背景)的坐标(spriteX、spriteY),不相对于屏幕位置。然后你不需要在滚动时更改这些数字....
- 然后你需要在屏幕位置(-scrollX,-scrollY)绘制背景,在(spriteX-scrollX,spriteY-scrollY)绘制每个 Sprite 。
- Java 应该为您处理屏幕剪辑。但是,如果您的游戏世界和背景很大,那么您可能需要一些额外的技术来避免尝试绘制屏幕外对象的开销(这在游戏开发术语中称为“视锥体剔除”)
关于Java滚动背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254914/