簡體   English   中英

Box2D奇怪的ApplyLinearImpulse

[英]Box2d strange applyLinearImpulse

我有兩個動態的身體。 在每一步中,我都嘗試為此物體設置恆定速度。 存在三種變體該如何做:

body.applyLinearImpulse(Helper.getVec(config.getLinearVelocity()*body.getMass(), body.getAngle()), body.getPosition());

要么

body.applyForce(Helper.getVec(config.getLinearVelocity()*body.getMass(), body.getAngle()), body.getPosition());

要么

body.setLinearVelocity(Helper.getVec(config.getLinearVelocity(), body.getAngle()));

其中config.getLinearVelocity()返回第一個主體的值V ,第二個主體返回1.5*V

如果我在每一步上都調用setLinearVelocity ,則物體通常會以各自的速度移動。 但是,如果我在每個步驟上調用其他函數,則物體以相同的速度運動,因為它們的速度是使用setLinearVelosity的速度的setLinearVelosity 為什么?

您只需調用一次applyLinearImpulse,因為調用此函數時,移動將分解為多個步驟。 例如,如果您想讓玩家跳起來,只需在其身體上調用applyLinearImpulse()1次(例如,當您觸摸屏幕時),而box2d將增加速度,則重力將減小速度。

另一方面,setLinearVelocity將僅針對世界的當前步驟設置速度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM