0

我正在尝试为 cocos2d-js 游戏实现花栗鼠物理引擎。运行时出现以下错误。

jsb:错误:文件 Y:\Documents\cocos\PrebuiltRuntimeJs\frameworks\js-bindings\bindings\auto\jsb_cocos2dx_auto.cpp:行:2143,功能:js_cocos2dx_Node_setPhysicsBody
本机对象无效
JS: D:/PROJECTS/cocos/Sliderule/runtime/win32/../../src/app.js:32:Error: Invalid Native Object


这是我正在使用的代码

`初始化:函数(){
        this._super();
        变量大小 = cc.winSize;
        this.rect1 = new cc.Sprite(res.null_png,cc.rect(0,0, 200, 25));
        this.rect1.setColor(cc.color(255,50,50,1));
        this.rect1.setPosition(size.width/2, size.height-12.5);
        this.rect1._setAnchorX(0.5);
        this.rect1._setAnchorY(0.5);

        this.rectbody1 = new cp.Body(1,cp.momentForBox(1,this.rect1.getContentSize().width, this.rect1.getContentSize().height));
        this.rectbody1.p = cc.p(size.width/2, size.height-12.5);        
        this.space.addBody(this.rectbody1);
        this.rectshape1 = new cp.BoxShape(this.rectbody1, this.rect1.getContentSize().width - 14, this.rect1.getContentSize().height);
        this.space.addShape(this.rectshape1);
        this.rect1.setPhysicsBody(this.rectbody1);
        this.addChild(this.rect1,1);
`

将主体设置为精灵时出现问题。提前致谢。

4

1 回答 1

2

由于缺少 retain(),通常会出现此错误消息。您必须明确设置要由本机系统(Android、iOS)保留的精灵,否则一段时间后它就无效了。然后,如果你不再需要它:释放它。

尝试:

this.rect1.retain()

创建精灵之后。接着

this.rect1.release()

当你不再需要它时。

于 2015-01-26T14:36:44.097 回答