Cocos2d-x::节点、精灵、布景层

一、CCNode
1.特点
(1)可以包含其他节点,进行添加获取删除子节点;
(2)可以执行周期性回调任务;
(3)可以执行动作;

2.属性
position //位置
scale(x,y)//缩放
rotation(indegrees,clockwise) //旋转
skew //倾斜
CCCamera //视点转换
CCGridBase //网类转变
anchor point //锚点
size //尺寸
visible //可见
z-order //z轴值
openGL z position //openGL z值

3.接口(略)

3.2 图形属性

PS: unsigned int getChildrenCount( void ) const ;
//const 函数
这样的函数叫常成员函数。常成员函数可以理解为是一个“只读”函数
它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数

const用在成员函数主要是针对类的const 对象
如:
class Text{
public:
void printconst(void)const{cout<<"hello"<<endl;}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
const Text a;
//上面定义了类Text的一常量对象
int main(void)
{
a.printconst(); //ok
a.print(); //error
//上面a.print()调用是非法的
return 0;
}
const对象只能调用const成员函数
const对象的值不能被修改,在const成员函数修改const对象数据成员的值是语法错误
在const函数调用非const成员函数是语法错误

任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。

4.CCNodeRGBA

它是一个带有颜色和透明度的节点,比CCNode多了两个特性,Opacity和RGB;
若要给子节点传递透明度的属性,需要通过CCNodeRGBA

二、场景类CCScene和布景类cclayer

1.CCScene

对比CCNode差别有:

(1)构造函数中设置了不使用锚点定位,而是使用了坐标原点,即使设置了锚点也不起作用。

m_bIgnoreAnchorPointForPosition是CCNode的属性,用于CCScene和cclayer。

  1. m_bIgnoreAnchorPointForPosition=true;
(2)在init中设置场景的大小。节点的初始化大小为CCSizeZero,也就是没有大小。CCScene初始化时设置了场景的大小,即窗口大小。
  1. this->setContentSize(pDirector->getWinSize());

2.cclayer
http://cn.cocos2d-x.org/tutorial/show?id=572


cclayer相对CCScene而言会比较麻烦一点,因 为他不仅要作为容器使用,而且还要实现一些游戏功能,所以它继承了CCTouchDelegate,CCAccelerometerDelegate和 CCKeypadDelegate,这三个类是用来处理触摸事件,重力感应事件和键盘事件的,认初始化都是不可用,需要手动设置开启。

3.颜色布景层:cclayerRGBA,cclayerColor,cclayerGradient


1)cclayerRGBA和CCNodeRGBA差不多,也是用于设置RGB值和Blend值,同时可以传递到子节点。它的相关接口参见CCNodeRGBA。

(2)cclayerColor只是一个单纯的可以绘制颜色的层。可以带入长宽参数,绘制一个矩形的布景层。

(3)cclayerGradient继承于cclayerColor,是一个带有渐变效果的布景层。


4.多层布景层:cclayerMultiplex

二、CCSprite

三、CCAction

CCFollow
跟随动作,可以实现节点跟随另一个节点动作;内部封装了一个boundary,跟随范围,初始值为CCRectZero

CCSpeed
可调整速度动作,内部封装一个速度值;

CCFiniteTimeAction
有限次动作执行类,两个子类分别为CCActionInstant和CCActionInterval,前者代表瞬时动作,后者代表延时动作;
virtual CCFiniteTimeAction* reverse(void);//动作反转

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...