我想逐渐为我的演员设置动画。我加入这个行动从A点移动演员到B点Libgdx Actions =>将演员从A点逐渐移动到B点
addAction(Actions.sequence(Actions.moveBy(1, 1), Actions.moveTo(posX, posY)));
也试过这个(在10秒的moveTo):
addAction(Actions.moveTo(posX, posY, 10)));
但演员的动作太快。怎么了?
我想逐渐为我的演员设置动画。我加入这个行动从A点移动演员到B点Libgdx Actions =>将演员从A点逐渐移动到B点
addAction(Actions.sequence(Actions.moveBy(1, 1), Actions.moveTo(posX, posY)));
也试过这个(在10秒的moveTo):
addAction(Actions.moveTo(posX, posY, 10)));
但演员的动作太快。怎么了?
第二种形式:
addAction(Actions.moveTo(posX, posY, 10)));
应在10秒的过程中你的演员移到POSX,波西。
第一种形式将在x和y中移动actor 1步,然后完成将actor移动到posX,posY。 Actions.sequence
依次运行给定的操作,它们不会相互修改。
如何(以及在哪里)在舞台上致电act()
?这决定了在帧中更新Actor
的次数,因此如果每帧调用多次或传递错误的值,这些操作将会过快。
+1给我一个线索。 – Alf 2013-02-21 16:29:23
只是因为当我搜索'Libgdx移动到点'时,你的答案是顶部我会在这里发布一个解决方案。
这里是一个解决方案,而不是专门针对参与者:
定义在类Vector2变量,它们将被用于对象的位置是:
protected Vector2 v2Position;
protected Vector2 v2Velocity;
的位置被设定在构造函数或其他地方。要获取物体的速度,并将其移动到指定点:
public void setVelocity (float toX, float toY) {
// The .set() is setting the distance from the starting position to end position
v2Velocity.set(toX - v2Position.x, toY - v2Position.y);
v2Velocity.nor(); // Normalizes the value to be used
v2Velocity.x *= speed; // Set speed of the object
v2Velocity.y *= speed;
}
现在仅仅是速度增加的位置和对象将移动到给定点
@Override public void update() {
v2Position.add (v2Velocity); // Update position
}
谢谢,这指出我在正确的方向。在更新方法中,我做了'v2Position.lerp(v2Velocity);'因为我需要对象移动并停在特定位置。 – Raf 2013-10-31 16:22:13
你可以也可以使用[Universal Tween Engine](https://github.com/AurelienRibon/universal-tween-engine)。也适用于精灵并且有许多功能。 – trinity420 2018-02-22 14:16:11