Java滚动背景

标签 java scroll

如何在 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/

相关文章:

java - 我试图通过获取和设置 x/y 值来使关键输入起作用,但它不起作用

java - 何时使用静态方法

javascript - JS - 停止 DIV 并在位置添加类

c# - 用户控件中的滚动条

java - 如何将 Modellica 代码转换为 Ontologies (.owl)?

java - 如何在使用字符串分词器读取分数时忽略括号?

java - 当前 java 进程的错误/输出流

Javascript - 移动设备滑动滚动

javascript - 滚动后重新定位 DIV

c# - 如何像资源管理器那样处理 WM_MOUSEHWHEEL?