动态物体的碰撞行为

我在场景中有两个动态物体,实际上它们是两个球。但是我不满意它们的碰撞行为,例如当它们碰撞时,一个球会变得更快,而另一个会变得更慢,有时一个球完全停止。我知道这符合物理规律,但我希望即使它们碰撞,它们的速度仍保持不变。实际上我正在使用coronalabs开发它,下面是我添加两个球的代码

  ball1 = display.newCircle(ballx, bally, ball_radius)
  physics.addBody( ball1, "dynamic", { bounce = 1, density =1, friction = 0, radius = ball_radius } )
  ball1:setFillColor( 255,215,0 )
  ball1:setLinearVelocity(500,500)

  ball2 = display.newCircle(ballx+5, bally+25, ball_radius)
  physics.addBody( ball2, "dynamic", { bounce = 1, density =1, friction = 0, radius = ball_radius } )
  ball2:setFillColor( 255,0,0 )
  ball2:setLinearVelocity(500,500)
点赞
用户2260604
用户2260604

这可以通过将密度改为0、弹跳值改为1来实现。

physics.addBody(ball, "dynamic", {bounce = 1, density = 0, friction = 0, radius = ball_radius})

另一种方法是使用碰撞检测,在碰撞后设置 setLinearVelocity()。这样失去的力量会立即恢复到你希望球在碰撞后以任何速度移动但在一个新的方向上的速度。

2014-09-29 12:19:41