gpt4 book ai didi

java - libGDX 中对象的速度

转载 作者:行者123 更新时间:2023-12-01 19:30:17 25 4
gpt4 key购买 nike

在 libGDX 中以给定速度移动游戏中物体的正确方法是什么?例如。我在屏幕底部有一个圆圈,我想以每秒 10 像素的速度将其移动到顶部。所有手机都有不同的速度,因此每部手机上的渲染功能的增量时间都不同,那么我该怎么做?

最佳答案

我不确定你的具体意思:

All phones have different speeds so delta time of render function on every phone is different...

但我认为您对渲染过程中delta值的理解是不正确的。您可能已经知道,render 方法每秒被调用多次,并且每次完成对 render 方法的调用后,屏幕都会更新。通过检查 Gdx.graphics.getFramesPerSecond() 可以找到调用 render 方法的次数。那么delta值的目的到底是什么? delta 只是当前帧(此渲染调用)和最后一帧(当前帧之前的渲染调用)之间的时间跨度(以秒为单位)。

从物理学中我们知道距离=速度*时间

因此,要每 1 秒将对象移动 10 个单位的距离(单位可以是像素、米等……这实际上取决于您的相机和世界渲染逻辑),我们必须计算正确的行进距离对于当前帧。我们知道速度和耗时 (delta)。我们可以像这样计算下一个位置

public void render(float delta) {
float velocity = 10.0f; // actually 10.0units / 1s
position = position + velocity * delta; // position can be circle.y to travel up
}

关于java - libGDX 中对象的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com