我的身体速度变化有问题。 通常,线性速度是3f,当身体与墙壁碰撞时,速度会在-3f处变化。但是当它发生时它大概是0。
以下是代码:
private void createPlayer(){
...
bdef.velocity.set(-3f,0);
...
}
private void render(){
...
world.step(V.STEP, V.VELOCITYITERATIONS, V.POSITIONITERATIONS);
if(cHandler.changeVelocity())
ball.getBody().setLinearVelocity(-ball.getBody().getLinearVelocity().x, 0);
...
}
我已经在beginContact,endContact,presolve和endsolve中尝试过,但总是大约为0.
当我把碰撞检测放在beginContact并手动设置为-3f然后它是-3f但跳跃不再正常工作,我的意思是重力不再抓住球到地面。
当我手动设置时:
if(cHandler.changeVelocity()){
ball.getBody().setLinearVelocity(-3f, 0);
}
之前的日志:
velocityX: 3.0022564 velocityY: -5.261436
之后:
velocityX: -3.0 velocityY: 0.0
p.s世界引力是(0,-10) 我希望你能帮助我。
谢谢!