我想逐漸爲我的演員設置動畫。我加入這個行動從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