cocos-Creator 的物理引擎不起作用

CocosCreator 1.9 最简单的一个例子却跑步起来

p1,p2是一个sprite,挂了RigidBody,PhysicsCircleCollider,但是却不会动呀

var NTest = cc.Class({
extends: cc.Component,
properties:
{
p1: cc.RigidBody,
p2: cc.RigidBody,

        _tick: 0,
        pm: null,
    },
start: function ()
{
    var pm = cc.director.getPhysicsManager();
    pm.enabled = true;
},
update: function (dt)
{
    this._tick += dt;

    if (this._tick > 2)
    {

        this._tick -= 2;

        this.p1.awake = true;
        this.p1.applyLinearImpulse(cc.v2(1000, 1000), this.p1.getWorldPosition());
    }
}

});

碰撞系统开关也要开

之前的这段代码都可以跑,不知道为什么突然不能跑了……

我也发现一个问题,var pm = cc.director.getPhysicsManager();
pm.enabled = true;这些写到onLoad里正常,如果写到start里就会有些刚体不会碰撞,可奇怪了。

我写onLoad里会报系统错误的…
TypeError: Cannot read property ‘length’ of undefined
cocos2d-js-for-preview.js:28871
at cc_PhysicsBoxCollider.__init (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:28871:34)
at CCClass.pushDelayEvent (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:27827:27)
at cc_PhysicsBoxCollider._init (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:28853:41)
at cc_PhysicsBoxCollider.onEnable (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:28844:14)
at CCClass.invokeOnEnable [as _invoke] (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:13934:20)
at CCClass.invoke (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:13854:14)
at CCClass.activateNode (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:27523:25)
at cc_Scene._activate (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:10588:36)
at TheClass.runSceneImmediate (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:8213:17)
at http://127.0.0.1:7456/app/editor/static/preview-templates/boot.js:378:37

现在使用的有问题么?

开了不行,如果把 var pm = cc.director.getPhysicsManager();
pm.enabled = true;放在 onLoad里就会报错
TypeError: Cannot read property ‘length’ of undefined
cocos2d-js-for-preview.js:28871
at cc_PhysicsBoxCollider.__init (http://127.0.0.1:7456/app/engine/bin/cocos2d-js-for-preview.js:28871:34)

对应代码:
var bits = cc.game.collisionMatrix[node.groupIndex];
for (var i = 0; i < bits.length; i++) { // LINE:28871 cc.game.collisionMatrix是长度为0的Array