quick-cocos2d-x 中自带物理引擎 PhysicsMaterial 恢复力的问题


今天在使用物理引擎过程中,发现不管材质第二个字段,恢复力是否设置为0,绑定的物件运动异常,例如一个球落到地面上,落到地面后,并没有静止,仍然会跳动(可能很轻微,也可能很剧烈)这种情况很大概率出现,但不是必定会出现。例如:

 

小球部分:
local body = cc.PhysicsBody:createBox(self:getContentSize(), cc.PhysicsMaterial(0.0, 0.0, 0.0))

地面部分:
local ground = display.newNode()
local bodyBottom = cc.PhysicsBody:createEdgeSegment(cc.p(0, height2), cc.p(width, height2), cc.PhysicsMaterial(0.0, 0.0, 0.0))
ground:setPhysicsBody(bodyBottom)

 

Cocos 官方给出的答复是:

反复测试了一下,有类似于你说的现象,但这不是反弹。而是正常的物理“撞入”然后被拉回,但没有弹出去,这跟反弹是两回事。你开启scene:getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)仔细观察就知道。

目前引擎并没有直接的阻止这一行为的方式,因为这被CHIPMUNK认为是正常的物理模式。

不过,如果非要解决的话,可以通过碰撞检测的回调里进行处理,阻止小球越过某一坐标线。物理碰撞的使用方式可参考lua-tests或一些教程。相关事件:

        EVENT_PHYSICS_CONTACT_BEGIN,

        EVENT_PHYSICS_CONTACT_PRESOLVE,

        EVENT_PHYSICS_CONTACT_POSTSOLVE,

        EVENT_PHYSICS_CONTACT_SEPERATE,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值