scene2d 中的 Lib gdx 和自定义演员

Lib gdx and custom actors in scene2d

我是 libgdx 的新手,很享受它为我提供的学习。

我目前正在创建一些自定义 actors(扩展 Actor class)并在屏幕上移动它们。

我的问题是,当使用 setX()、setY() 移动角色时,如何使用作为参数提供给 act 方法的传入浮点增量对其进行适当缩放?

示例,

@Override
public void act(float delta) {

    if (wasTouched) {

        setY(getY() - .5f);
    }
}

如何使用增量正确缩放运动? libgdx Actor class 中是否有内置函数?

没有内置函数。我不知道您的 update 方法是什么样的,所以我不知道 wasTouched 是否在手指按下的每一帧都为真。

但是如果你想在手指按住物体的同时以一定的速度移动物体,那么首先你需要有一个想要的速度。它可以像

一样保持不变
private static final float SPEED_WHEN_TOUCHED = 5.0f; //in viewport units per second

或者它可能是一些随时间变化的变量,但无论哪种方式,它都应该以每秒视口(世界)单位为单位。

然后,当您想以该速度移动某物时,您可以将速度乘以增量时间(以秒为单位)以获得所需的运动量。

@Override
public void act(float delta) {
    if (wasTouched) {
        y += SPEED_WHEN_TOUCHED * delta;
        positionChanged();
    }
}