改变速度方向不起作用

时间:2015-02-07 15:56:29

标签: java libgdx box2d

我的身体速度变化有问题。 通常,线性速度是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) 我希望你能帮助我。

谢谢!

0 个答案:

没有答案