2014-04-14 88 views
0

如何在不影響LIBGDX Box2D中的Y方向運動的情況下,僅在X方向上設置線性速度。我申請的衝動身體讓它跳起現在我想將它移動向右或向左我嘗試採用以下方法:LibGdx設置速度

setLinearVelocity(Vector2) 

但它停止垂直運動。謝謝

回答

3

只需通過getter檢索當前速度,操作它並設置新的速度。

Vector2 velocity = body.getLinearVelocity().cpy(); 
velocity.set(500, velocity.y); 
body.setLinearVelocity(velocity); 
+0

你甚至需要設置它嗎?應該是相同的對象,所以一組操作後不應該需要對嗎?我的意思是如果你只是獲得速度並操縱它。不需要複製或類似的東西。你會節省一些我認爲的操作。 – BennX

+0

Thanks works great –

+2

@BennX我認爲這是必要的,因爲在某些平臺上,getter和setter調用本機C++代碼。單獨操作矢量不夠,你需要再次調用setter。我不確定cpy()。返回的向量可能只是一個臨時的,它可以改變,但爲了保存,我添加了cpy()。 – noone