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
时高几倍。
为什么呢?
答案 0 :(得分:0)
你必须只调用一次applyLinearImpulse,因为当你调用这个函数时,mouvement将分多步分解。例如,如果你想让一个玩家跳跃,你只需要在其身体上调用applyLinearImpulse()一次(当你触摸屏幕时),而box2d会增加速度,然后重力会降低它。
另一方面,setLinearVelocity将仅为当前世界步骤设置速度