實施例移動體:/與球60公里每小時的速度發射大炮libgdx Box2D的身體 - 如何通過給定的力或速度,距離和時間
給定:(60 KPH) 距離= 60公里, 時間=1小時
Libgdx:遊戲世界
// Given that I am using 1/45.0f step time, the rest iteration velocity 6 and position 2
// Given that 60.00012 kilometres per hour = 16.6667 metres per second
float speed = 16.6667f; // 16.6667 metres per second
Vector2 bulletPosition = body.getPosition();
Vector2 targetPosition = new Vector2(touchpoint.x touchpoint.y);
Vector2 targetDirection = targetPosition.cpy().sub(bulletPosition).scl(speed);
問題:但我的問題是炮彈沒有以我想要的速度移動,我該如何記錄車身速度,以便檢查速度是否正確。我只注意到它是錯誤的,因爲炮彈運動得慢,可想而知每小時60公里
PS:假設上面的圖片寬度爲5米,高度爲3米
body.setLinearVelocity(targetDirection.scl(deltaTime));
問題2:我不知道我怎麼計算由給定的速度和步發力
// Given that F = ma
Vector2 acceleration = ???
float mass = body.getMass();
Vector2 force = ???
body.applyForces(force);
嗨@BasimKhajwal感謝您的乾淨,明確,可以理解的答案!施加衝擊後,方向稍有不同。例如,當我以30度角度觸摸屏幕時,球在32度上移動,但這不準確。奇怪的行爲,我仍然對Vector2的使用感到困惑。我仍然不明白它的目的。 – ronscript