我是libgdx的新手,我很享受它为我提供的学习。
我目前正在创建一些自定义actor(扩展Actor类)并在屏幕上移动它们。
我的问题是,当使用setX(),setY()移动actor时,如何使用作为act方法的参数提供的传入的float delta来适当地缩放它?
实施例,
@Override
public void act(float delta) {
if (wasTouched) {
setY(getY() - .5f);
}
}
如何使用三角形正确缩放移动?在libgdx Actor类中是否有内置函数?
答案 0 :(得分:0)
没有内置功能。我不知道你的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();
}
}