Cocos2d-x中的核心类简介

来源:互联网 发布:js根据时间戳获取日期 编辑:程序博客网 时间:2024/05/29 15:28

首先介绍一下cocos2d-x中的框架结构,如图


其中:

导演:是整个游戏的领导者,游戏中的所有动作,动画,已经场景的跳转等,都需要经过导演的“同意”,所以在执行动作的时候一定要注意调用导演类。

场景:场景就是游戏中的每一个关卡,当我们设置的通关游戏,跳转到下一个关卡时,需要用到场景类。所以导演可以控制多个场景。

布景层:布景层也就是游戏的背景,因为每一个关卡都需要有不同的背景,而在一个关卡中也可以有多个背景(比如远近景的交替),所以场景也可以控制多个布景层。

节点:节点就是游戏中的人物,可以是npc也可以是主角等所有显示在屏幕上的元素,但要注意,节点本身并不承载任何显示在屏幕上的任何图片图形等内容,但是所有的这些元素都是继承自节点的,是节点的子类。所以也可以说,显示的元素就是节点。

下面主要介绍一下节点类

节点类(Node)继承自Ref,在xcode中按住command键点击节点,可以查看继承关系。

常用的布景层类(Layer)、场景类(Scene)、精灵类(Sprite)都属于节点类。

那么,节点类的主要功能有:

1.每一个节点类都可以设定坐标、设置动作(旋转、位移)

2.每一个节点都是以“锚点”为参考点。

3.每一个节点都有父节点,并且都可以通过addChild添加多个子节点。当父节点变换时,子节点也会随之变换。

4.每个节点都可以计划任务。

*锚点就是一个节点的中心点,节点会以这个点为参照物设置所处的位置。

下面通过代码介绍几个节点的功能:

1.设定节点坐标

auto sp1=Sprite::Create(‘图片的名称’);

sp1->setPosition(100,100);//设置sp1的位置在100,100处。

2.设置锚点

sp1->setAnchorPoint(Vec2(0.5,0.5));设置锚点在节点的中央

3.设置动作

sp1->setRotation(135);节点旋转135°。

4,节点的父子关系

sp1->addChild(sp2);设置sp2为sp1的子节点

5。节点的隐藏和显示

sp1->setOpacity(175);设置节点的透明度。

6.执行计划任务

将设计好的动作设置tag。

sp1->setTag(888);

通过获取tag,使节点的动作自动发生改变

Sprite * nows=(Sprite *)this->getChildByTag(888);

nows->setRotation->getRotation()+10);让旋转角度每次+10。

然后通过Schedule函数调用这个函数

sp2->schedule(schedule_selector(GameScene::gamelogic),1)一秒钟调用一次。

这样就可以使sp1每秒钟自动的旋转10°。





0 0
原创粉丝点击