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

前端之家收集整理的这篇文章主要介绍了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


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);//动作反转
原文链接:https://www.f2er.com/cocos2dx/342958.html

猜你在找的Cocos2d-x相关文章