这几天在用Cocos2D-X尝试着做一个小游戏,当然不是创新,仅仅是单纯的模仿,就是为了将自己这段时间学到的技术应用于实践中。
在这个过程中。遇到了一些问题,在此特做一些总结,以免以后遇到类似的问题。
与诸君共享,希望可以在诸君以后的开发中起到一点帮助,哪怕仅仅是一点点,也就不负初衷了。
1.进入场景后没有出现预期控件移动的效果
错误原因:没有调用父类的onEnter()方法
2.SimpleAudioEngine找不到
错误原因:没有导入#include "SimpleAudioEngine.h"头文件
没有引用using namespace CocosDenshion;命名空间
3.调用
CCDirector::sharedDirector()->replaceScene(GameAbout::scene());
切换场景后,新场景显式黑屏
错误原因:没使用CREATE_FUNC(GameAbout);宏创建新的场景
4.用VS2012编译后的project。再用VS2010执行时报出例如以下错误:
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方法例如以下:
项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。
5.CCSpriteBatchNode only support CCSprite
错误原因:将非CCSprite对象加入到了CCSpriteBatchNode对象上
6.预期出现标题移动的效果。实际出现背景移动的效果
错误原因:标题和背景的tag反复
7.精灵不能响应触摸事件
错误原因:未注冊触摸事件代理
CCDirector->sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
8.注冊触摸事件后不能正确推断触摸点的位置
错误原因:未将触摸点坐标转化为CCNode的相对坐标
convertTouchToNodeSpaceAR(touch)
9.触摸移动时,未调用ccTouchMoved方法
错误原因:ccTouchBegan方法返回值为false
10.创建动画后无动画效果
错误原因:未调用下面方法
animation->setDelayPerUnit(0.2f); // 设置两帧间的时间间隔
animation->setRestoreOriginalFrame(true); // 是否从原始帧開始播放
原版的:http://cocos2d.9tech.cn/news/2014/0326/40110.html