核心概念
场景(Scene)和层(Layer)
场景:特定时间,特定地点发生的事件的集合
层:图层
PS中的层一致,场景是由一个又一个层构成的
tips:一个场景可以有多个层,一个场景至少有一个层
精灵(Sprite)
在屏幕上移动的对象,他能被控制。
特点:
- 他是可以被控制的游戏对象
- 通常是在屏幕上可以移动的对象
- 图片元素,如背景画
- 动画,如骨骼动画等
例:手游刺激战场中你人物的角色,角色手中的枪,载具等,这些对象都是精灵
序列帧动画:很多张图片以相同间隔的时间循环播放构成的
UI组件
界面上的元素
例:比如游戏中的进度条,标签,按钮,菜单,滑动条,复选框,文本框等
导演(Director)
控制游戏的制作流程,指导团队完成各项任务。
节点类Node
什么是游戏元素?
如游戏中的场景、精灵、文本,地图、菜单、层…,任何的对象。
Cocos2d中用Node类来对应游戏元素的概念,他是Cocos2d-x中最为重要的根类。
Node的属性
以下是比较重要的属性
节点关系
假设有三个精灵被添加到了父精灵。如果给父精灵旋转了一个角度,那么子精灵也会选择一个角度。
创建Node对象
这是部分设置还有很多参数。
增加子节点
在父节点中默认显示层级,添加默认元素标识的子节点
parentNode->addChild(node);
在父节点中指定显示层级,添加默认元素标识的子节点
parentNode->addChild(node,zorder);
在父节点中指定显示层级,添加指定元素标识的子节点
parentNode->addChild(node,zorder,tag);
tips:以上是添加子节点的三种重载方式
查找子节点
通过元素标识查找:auto node=parentNode->getChildByTag(tag);
//通过元素查找会比通过名称查找更快,因为整形变量的遍历比字符型更加高效
通过元素名称查找:auto node=parentNode->getChildByName(name);
遍历查找:
Node* findNode =nullptr;
int findTag=20;
for(auto node:parentNode->getChildren())
{
if(node->getTag()==findTag)
{
findNode=node;
break;
}
}
删除子节点
通过元素标识删除指定的节点:parentNode->removeChildByTag(tag);
通过元素名称删除指定的节点:parentNode->removeChildByname(name);
通过指定的子节点:parentNode->removeChild(childe);
通过所有的子节点:parentNode->removeAllChildren();
未完待续!