Cocos2d-x 核心概念

场景(Scene)和层(Layer)

场景:特定时间,特定地点发生的事件的集合

层:图层

PS中的层一致,场景是由一个又一个层构成的

tips:一个场景可以有多个层,一个场景至少有一个层

精灵(Sprite)

在屏幕上移动的对象,他能被控制。

特点:

  1. 他是可以被控制的游戏对象
  2. 通常是在屏幕上可以移动的对象
  3. 图片元素,如背景画
  4. 动画,如骨骼动画等

例:手游刺激战场中你人物的角色,角色手中的枪,载具等,这些对象都是精灵

序列帧动画:很多张图片以相同间隔的时间循环播放构成的

UI组件

界面上的元素

扫描二维码关注公众号,回复: 11148151 查看本文章

例:比如游戏中的进度条,标签,按钮,菜单,滑动条,复选框,文本框等

导演(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();

未完待续!

原创文章 38 获赞 9 访问量 4535

猜你喜欢

转载自blog.csdn.net/Limit_Fly/article/details/90761350