动态对象碰撞行为

时间:2014-09-29 07:46:35

标签: lua corona

我在场景中有两个动态对象实际上这些是两个球。但是我对碰撞行为不满意,例如当他们发生碰撞时,一个球得到快速而一个得到的速度变慢,有时一个球完全停止。根据物理规则,我知道这是正常的但我想要静态速度,即使它们发生碰撞。实际上我正在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)

1 个答案:

答案 0 :(得分:0)

这可以通过简单地将密度更改为0并反弹到1来实现。

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

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