所以我有一个Tween将Sprite从当前位置移动到触摸位置。问题是如果触摸的位置接近Sprites当前位置,则速度非常慢。如果触摸的位置远离精灵,它会很快移动。
我的理解是Tween.to(mySprite, Type.POSITION_XY, 1.0f);
语句末尾的数字是分配给补间完成的时间。有没有办法根据触摸位置与当前位置的距离,或者从触摸时间到Tween完成时稳定增加?
基本上我正在寻找的是,无论距离如何,Tween都以相似的速度移动Sprite。
谢谢你的时间!
答案 0 :(得分:1)
您只需将行驶距离除以所需速度即可获得总时间。通过缓和,您的速度将不会是恒定的,但它将是正确的平均速度。
static final float SPEED = 30; //in world units per second
...
Tween.to(mySprite, Type.POSITION_XY, Vector2.dst(mySprite.x, mySprite.y, destinationX, destinationY)/SPEED)
.target(destinationX, destinationY);