无语,写了一大堆,结果提交报错…白写了
再来一次… 还是要吐槽你下,行不行了啊
开始了
错误提示
jsb: ERROR: File …\auto\jsb_cocos2dx_auto.cpp: Line: 5207, Function: js_cocos2dx_Node_getBoundingBox
js_cocos2dx_Node_getBoundingBox : Invalid Native Object
JS: D:/worksspace/coco2/dafeiji/runtime/win32/…/…/src/app.js:181:Error: js_cocos2dx_Node_getBoundingBox : Invalid Native Object
代码产生错误部分
for(i in this._enemyBullet){ // 遍历敌机子弹
var enemyBulletsKill = this._enemyBullet/;
var enemyBulletRect = enemyBulletsKill.getBoundingBox();
if (cc.rectIntersectsRect(enemyBulletRect,jetFighterRect)){
//enemyBulletsDelete.push(enemyBulletsKill);
this.gameLayer.removeChild(enemyBulletsKill);
}
这里我找了几个例子和很多资料,没什么明确的解释,我有几个疑问
1 在官方教程和例子里 遍历精灵数组 是这样写
blArray 是一个初始化了的精灵数组
for(i in blArray){
var tmpSprite= blArray;
tmpSprite。setPosition(xxx,xxxx);
}
看到这里我发呆了,把一个数组赋值给一个变量,就算是复制吧,那接下来tmpSprite。setPosition(xxx,xxxx); 这是什么鬼!!!! 事物水平太次了么,我承认我大概浏览过js的教程,就是当按着一般的语言来用的,但是这个我真是有点理解不上去,难道不应该是 var tmpSprite= blArray/;取一下下标么【i】,这是一个,当然了,我编译了一下也一样报错 证明 var tmpSprite= blArray; 也不对哇
2 js_cocos2dx_Node_getBoundingBox : Invalid Native Object 这个错误,是c++检测变量类型有问题,那么是什么问题呢,数组里是精灵,取出精灵后只要是取精灵的 位置啦 边界啦 都会这么报错
,搜到一篇文档,貌似是英文的官方解释~ ,看了就和没看一样,知识用英文表述了一下 c++认为变量类型有文艺 ,我了个大取,回答的i相当精彩,xxoo的
求高人解惑啊**