============================
CCBReader在iphone真机上无法读取的问题:(coco2dx版本 2.1.1)
打开项目 extensions/CCBReader/CCBReader.cpp line 518行左右
将 memcpy(&f, pF, sizeof(float)); this->mCurrentByte += 4;
改为: memcpy((void*) &f, (const void*) pF, sizeof(float)); this->mCurrentByte += sizeof(float);
原因由于ARM的编译器导致: 详见: https://github.com/cocos2d/cocos2d-x/pull/1967/files
============================================================
jsb: cc.CallFunc.create 回调时常导致程序clash的问题:
1: 尽可能不要使用cc.CallFunc.create(callback,target,data)中的第三个data参数, 改而通过callback使用匿名函数直接使用变量;
具体原因并未查明,但改进结构后,ios版本下游戏测试半小时以上未出现clash;
安卓下消除算法迭代7w次,时间20分钟左右,手机很热,但已未出现闪退,游戏大部分顺畅,GC时会小卡;
=============================================================
javascript binding中的movetoAction问题:当两个元素互换位置后再换回(三消中的宝石无效替换),如下代码
var pos1 = sA.getPosition(); var pos2 = sB.getPosition();
var move1 = cc.MoveTo.create(0.1, pos2); var move2 = cc.MoveTo.create(0.1, pos1);
sA.runAction(cc.Sequence.create(move1, move2));
sB.runAction(cc.Sequence.create(move2,move1));
将出现A元素到达B点后,瞬移回A点, B元素正常的情况;
原因未查明;可在序列动作中间增加一个Delay,则动画逻辑正常;
===============================================================
输出到ios5.0的机子上,原本在ios6.0的竖屏变成了横屏:
RootViewController中, return UIInterfaceOrientationMaskPortait; 这个是ios6的用法;
要支持ios5: 在 shouldAutorotateToInterfaceOrientation函数中 return UIInterfaceOrientationIsPortrait(interfaceOrientation);
另xcode中两个概念:
Project:mac上工程的配置选项; Targets:目标机子配置的选项;
项目发布时:Project->Build Setting中有一项: iOS Deplyment Target iOS x.0
如果选择6.0,那么再接入5.0的机子时,是不会被项目识别到的,修改成5.0
修改后Targets的 Summary deployment Target会自动被修改成5.0
===============================================================
jsb动画切换:
暂停某个动作可以通过:cc.getActionByTag和stopActiopByTag来控制;
请在确定动作执行完成之后,再添加相同动作;(或者将进行中动作直接回到原点)
========================================
jsb中:RepeatForever的动画,stopByTag后,run新的RepeatForever无效;
action1 = repeat() ; action2 = repeat()
a.runAction(action1);a.runAction(cc.Sequence.create(callfunc(remove(action1)), action2) 此流程无效
解决方案参考 jsb ActionTest的 ActionRepeatForever 约1256行 (action2需放在回调中定义后执行,不然会报invalid_native_object)
========================================
发现repeatforever放在ccSpwan中,也不起作用;(貌似:spwan和sequence中出现repeat都会出现repeat动作无法运行)
========================================
sprite.setcolor(cc.c3b()) 和 tint 无法产生纯白色,他们是颜色混合器;
========================================
设置Sprite长宽的方法目前比较好的只有setScale(aX/bX); 等比例缩放,效果较好;
========================================
在过程中创建动画出现奇怪的现象,动画尽量在cache中创建;
========================================
在cocosbuilder中修改界面保存后,进入游戏,点击事件失效: 通过比对前后ccb文件变化,发现是cocos2dx2.1.1与cocosbuilder3对事件的命名不同造成:
cocosbuilder中保存为 touchEnabled, accelerometerEnable, keyboardEnabled,mouseEnable;
而cocos2dx2.1.1中识别为 isTouchEnabled,isAccelerometerEnabed, isKeyboardEnabled, isMouseEnable;
解决方法:修改 libs/extensions/CCBReader/CCLayerLoader.cpp 将四个常量重定义为没有is开头的;
========================================
cocosbuilder中添加png图像后,published时程序crash, 重新更换图片后正常;
========================================
cocosbuilder中修改精灵位移不生效,原因是改在某段动画上了
========================================
音乐循环播放需在playMusic()第二可选参数加true;
========================================
在制作粒子效果跟随移动中的精灵时,如果例子直接使用精灵的运动动画,则出错;单独定义一个相同的动画给粒子移动使用,没有问题;
========================================
a.runAction(Sequenct) Sequnce中删除a元素后,不要再接动作;
========================================
误以为动画出错没有播放,其实是被图层遮挡了;
========================================
新建ccb文件:设置控制器名变量,添加起始动画Intro,设置自动播放,添加.js文件(貌似不添加独立的js文件会黑屏)
========================================
根目录下的.js文件移到文件夹后无法被require,require的机制有待研究
========================================
字体文件设置resources-auto目录,builder将闪退,文件跟目录下放低清字体,resources-iphonehd目录放高清资源
========================================
cocosBuider打包压缩图使用pvr或者pvr.ccz会导致某些透明部分颜色消失,可采用png进行打包;
========================================