我使用 LibGDX 并在我的游戏中只移动相机。昨天我创建了一种在我的游戏中绘制地面的方法。我正在尝试制作 Flappy Bird 的克隆版,但我在绘制屏幕上移动的地面时遇到了问题。在每次渲染调用中,我都将一个新的 Actor
添加到 Stage
,但几次之后绘图就不再流畅了。每秒帧数下降得非常快。有没有其他方法可以在游戏中划清界限?
最佳答案
如果我没看错的话,你的问题是一旦 Actor 离开屏幕,他们仍在被处理并导致延迟,你希望他们被删除。如果是这种情况,您可以简单地遍历舞台上的所有 Actor ,将他们的坐标投影到窗口坐标,并使用它们来确定 Actor 是否在屏幕外。
for(Actor actor : stage.getActors())
{
Vector3 windowCoordinates = new Vector3(actor.getX(), actor.getY(), 0);
camera.project(windowCoordinates);
if(windowCoordinates.x + actor.getWidth() < 0)
actor.remove();
}
如果 actors 在窗口中的 x 坐标加上它的宽度小于 0,则 actor 已经完全滚出屏幕,可以被移除。
关于java - 从舞台上移除 Actor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121467/