【问题标题】:Dynamic objects collision behaviour动态对象碰撞行为
【发布时间】:2014-09-29 20:19:41
【问题描述】:

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

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      相关资源
      最近更新 更多