刚体直接重叠穿透 而且会一直触发onBeginContact(文件在下面,希望有大佬能帮我看看咋么解决)
NewProject.zip (846.0 KB)
我也想知道怎么解决
你是不是强制更新坐标了,这样物理可能没法正常计算。换成 cc.MouseJoint 来控制刚体的拖拽移动试试。
MouseJoint 拖拽咋么去延迟~~就是手指触摸到哪跟到哪, 还有那个拖动线咋么取消 求告知
延迟就是为了保证不会计算出问题,拖动线是 DebugDraw 开启后出现的,不绘制就没了。
那不满足要求~~而且mouseJoint只能作用于动态刚体 我需要的只是一个跟随手指触摸移动的刚体(实时性有要求),之前用setPosition和线速度移动都会出现刚体重叠穿透 实在不知道咋么解决这个问题了
求救
那不满足要求~~而且mouseJoint只能作用于动态刚体 我需要的只是一个跟随手指触摸移动的刚体(实时性有要求),之前用setPosition和线速度移动都会出现刚体重叠穿透 实在不知道咋么解决这个问题了
求救
你先试试刚体类型为 Animation,然后 每次操作坐标就用 body.syncPosition(true) 同步。
不过物理系统的特性就是这样,如果是强制设置position,刚体穿透就是不可避免的。
控制速度移动或者用MouseJoint 才保险一点。
Animation可以`做到和mouseJoint同样的碰撞效果 但是穿透不可避免~~~~ 不知道其他引擎可不可以做到
模拟静态就设置重力缩放为0
1:这个mouseJoint延迟可以取消吗,因为游戏要求手指触摸到那节点跟到哪,所以有延迟游戏体验很差,如果不可以有什么替代方法吗~~~
2:即使设置重力为0增加密度的方法模拟static 但是当节点碰到其他刚体,或则鼠标快速move突然松开依然会被弹开,这要如何解决呢?
谢谢解答
这个是通过关节去实现的,你可以通过设置参数减少延迟的感觉。如果要手指触摸到哪里节点就要在哪里,那么就建议书用setPosition,不过这样的话就可能会出一些物理模拟上的问题
不想弹开的话,那就把碰撞体和被碰撞体的弹性系数都设置为0就好,这样自然就不会弹开了
如果鼠标快速移动突然松开后不想物体继续移动的话,那你可以将LinearDamping设置大一些就行
嗯嗯 好的辛苦官方大佬了,我去试试不行还来问
creator中有类似于cocos2d-x 中mnouseJoint中的 SetTarget方法吗