1. cocos2d-x中,自动释放对象并不是万能的,有可能把你的变量在你尚在使用时已经销毁。例如你的全局变量使用了create(...)创建,创建时未使用retain(),则在其他地方再 次使此变量用时,此变量可能已经不存在。使用retain()后,不要忘记释放此变量,可以在析构函数中处理。
2. menu::create(...,...,NULL);最后一个参数NULL经常被忘记。
3. FlipX的动作是水平翻转(左右翻转)!不是绕X轴翻转;同理FlipY是垂直翻转(上下翻转)!不是绕Y轴翻转。
4. FadeTo,FadeIn,FadeOut的区别:FadeTo使透明度变化到一定程度;FadeIn从透明到不透明(Fade(透明)In(进入),FadeIn即由透明到不透明);FadeOut相反。
5. 动作类中,带By和To的另一区别:By可以执行reverse()函数,而To不能执行此函数。原因很简单,reverse()即执行相反的操作,By为相对动作,执行reverse()只要 反向执行即可返回原动作,例如moveBy(50,50)的reverse()即moveBy(-50,-50);但是To却无法由现在的动作推断出reverse()动作,如moveTo(50,50)的 reverse()是无法确定的,可以从(0,0)MoveTo(50,50),也可以从(100,100)moveTo(50,50).
6. _Array类中removeObjectAtIndex(...)与fastRemoveObjecAtIndex(...)的区别:removeObjectAtIndex(...)移除指定位置上的对象后,此对象以后的对象依次前移覆盖被移除 对象的位置,而fastRemoveObjectAtIndex(...)移除指定位置上的对象后,直接把最后一个对象填充到被移除的位置,速度较快。
7. _Dictionary类即字典类(<key,value>)仅支持string和int两种key。
8. CardinalSplineTo/By和CatmullRomTo/By两类样条曲线的区别:前者的拉力系数可以自定义,后者的拉力系数固定为0.5。当拉力系数大于1时,运动的轨迹会内缩,等于1时轨 迹是直线,小于1是轨迹会外扩。
9. Rect(float x,float y,float width,float heigh)的坐标系是屏幕坐标系,即以(x,y)为参考原点,width>0向右,<0向左,height>0向下,<0向上。
10. 透明度(0-255):0全透明,255完全不透明。
11. addChild(...)中的坐标系是相对坐标系。子节点的参考原点为父节点的左下角,距离为父节点左下角到子节点锚点的距离。
12. Z值:VerextZ是OpenGL坐标系中的Z值;PositionZ是Cocos2d-x坐标系中Z值;ZOrder是Cocos2d-x本地坐标系中的Z值;
SetpositionZ用来设置PositionZ,由于Cocos2d-x和OpenGL是相同的坐标系,故Positionz的值即为VertexZ的值;
PositionZ是全局渲染顺序,ZOrder是局部渲染顺序。
比较两个节点的渲染顺序:先比较全局渲染顺序(PositionZ)再比较局部渲染顺序(ZOrder);
Z值越大越显示在上面。
13. Tag,Scale9Sprite,
14. 菜单项MenuItem未包裹进菜单Menu之前无法响应触摸事件;即MenuItem本身无触摸响应事件。
15. Animate与Animation的区别:static Animate* create(Animation *animation);Animate是动作,Animation动画帧是名词,Animation转化为Animate 才能被节点运行。
16. ActionEase类中In:加速度越来越大,Out:加速度越来越小,InOut:加速度先增加再减小。