[英]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.