当前位置: 首页 > 知识库问答 >
问题:

如何与来自池的对象具有相同的渐进速度增量?

沈伟
2023-03-14

我用LibGDX做了一个游戏,小行星从屏幕的顶部边缘在随机的x位置产生,小行星以0.1F的速度逐渐向下移动,当小行星离开屏幕的底部边缘时,它被送到一个池中重复使用。我的问题是,过了一段时间,从水池里出来的小行星有不同的速度。我希望所有的小行星都以相同的渐进速度移动。

以下是我的小行星类中的更新和重置方法:

public void update(float delta){
    y -= speed * delta;
    speed += 0.1f;
}

@Override
public void reset() {
    // place asteroid at random x position
    x = MathUtils.random(minSpawnPoint, maxSpawnPoint);

    // place asteroid above screen edge
    y = Constants.CAMERA_HEIGHT + Constants.ASTEROID_MAX_SIZE;

}

共有1个答案

孟修竹
2023-03-14

如果我明白你在问什么,你希望所有的小行星开始时都很慢,同时增加速度,这样小行星之间的相对速度总是相同的。

如果是这种情况,那么你只需要有一个全球速度变量(在你的小行星类别之外),每个小行星将用来更新它的位置。每个小行星都不能保持自己的本地速度变量,因为一个特定的小行星在屏幕上的时间越长,它的速度就越高。这将导致小行星有不同的速度取决于他们在屏幕上的时间。

要解决这个问题,请将速度变量移动到保存小行星池的类中。然后通过速度乘以deltaY时间来计算y(deltaY)的变化,并将此值传递到所有小行星中。

public void update(float deltaY){
    y -= deltaY;
    ...
}
 类似资料:
  • 我知道PriorityQueues的迭代器没有返回正确的顺序,因此我查看顺序的能力受到限制--但是我可以看到元素离开队列的顺序,而且它显然没有按照我希望的路径运行。 建议?

  • 问题内容: 我如何测试python中两个JSON对象是否相等,而忽略列表的顺序? 例如 … JSON文档a: JSON文档b: 并且应该比较相等,即使列表的顺序不同。 问题答案: 如果你想要两个具有相同元素但顺序不同的对象相等,那么显而易见的事情是比较它们的排序后的副本-例如,以JSON字符串和表示的字典: …但这是行不通的,因为在每种情况下,”errors”顶层dict的项都是具有相同元素的列表

  • 问题内容: 我如何测试python中两个JSON对象是否相等,而忽略列表的顺序? 例如 … JSON文档 a : JSON文档 b : 并且即使列表的顺序不同,也应该比较相等。 问题答案: 如果要使两个具有相同元素但顺序不同的对象相等,那么显而易见的事情是比较它们的排序后的副本-例如,以JSON字符串和表示的字典: …但这是行不通的,因为在每种情况下,顶层dict的项都是具有相同元素的列表,但是顺

  • 我创建了一个java程序来创建一个预订系统,我必须创建一个GUI。在GUI中,我创建了具有相同对象名称的多个标签。我为此使用了gridPane Layout。 现在,我想删除所有这些标签并重新创建新标签,但当我尝试这样做时:

  • 问题内容: 我正在使用Bootstrap。如何使三根柱子的高度相同? 这是问题的屏幕截图。我希望蓝色和红色列与黄色列的高度相同。 这是代码: 问题答案: 使用Bootstrap 4的解决方案4 Bootstrap 4使用Flexbox,因此不需要额外的CSS。 解决方案1使用负边距(不会破坏响应能力) 解决方案2使用表 使用Flex的解决方案3已于2015年8月添加。此之前发布的注释不适用于此解决

  • 我有两个java类如下 现在我有了一个A级对象Aobj,两个字段都已初始化。我用的是小豆子。copyProperties(Bobj,Aobj),但只有字段值被复制到Bobj中。名称列表为空。有没有办法深度复制一个对象,以便它复制所有字段,包括列表、地图等集合。 我在某个地方听说了推土机,不确定这是否是为了这个目的。