Cocos2d x cocos2d js:错误:使用setPhysicsBody的本机对象无效

Cocos2d x cocos2d js:错误:使用setPhysicsBody的本机对象无效,cocos2d-x,cocos2d-x-3.0,chipmunk,cocos2d-js,Cocos2d X,Cocos2d X 3.0,Chipmunk,Cocos2d Js,我正在尝试为cocos2djs游戏实现花栗鼠物理引擎。运行时出现以下错误。 jsb: ERROR: File Y:\Documents\cocos\PrebuiltRuntimeJs\frameworks\js-bindings\bindings\auto\jsb_cocos2dx_auto.cpp: Line: 2143, Function: js_cocos2dx_Node_setPhysicsBody Invalid Native Object JS: D:/PROJECTS/cocos/

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

jsb: ERROR: File Y:\Documents\cocos\PrebuiltRuntimeJs\frameworks\js-bindings\bindings\auto\jsb_cocos2dx_auto.cpp: Line: 2143, Function: js_cocos2dx_Node_setPhysicsBody Invalid Native Object JS: D:/PROJECTS/cocos/Sliderule/runtime/win32/../../src/app.js:32:Error: Invalid Native Object jsb:错误:文件Y:\Documents\cocos\PrebuiltRuntimeJs\frameworks\js bindings\bindings\auto\jsb\u cocos2dx\u auto.cpp:Line:2143,函数:js\u cococos2dx\u Node\u setPhysicsBody 无效的本机对象 JS:D:/PROJECTS/cocos/Sliderule/runtime/win32/./../src/app.JS:32:错误:无效的本机对象
以下是我正在使用的代码

`init:function () { this._super(); var size = 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); ` `init:函数(){ 这个; var size=cc.winSize; this.rect1=新的cc.Sprite(res.null_png,cc.rect(0,0200,25)); this.rect1.setColor(cc.color(255,50,50,1)); 此.rect1.设置位置(size.width/2,size.height-12.5); 这个.rect1._setAnchorX(0.5); 这是1._setAnchorY(0.5); this.rectbody1=新的cp.Body(1,cp.momentForBox(1,this.rect1.getContentSize().width,this.rect1.getContentSize().height)); 这个.rectbody1.p=cc.p(size.width/2,size.height-12.5); this.space.addBody(this.rectbody1); this.rectshape1=新的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); `
我在将主体设置为精灵时遇到问题。请提前感谢。

此错误消息通常是因为缺少retain()。您必须显式地将精灵设置为由本机系统(Android、iOS)保留,否则一段时间后无效。然后,如果您不再需要它,请释放它

尝试:

在你创造了精灵之后,然后

this.rect1.release()
当你不再需要它的时候

this.rect1.release()