cocos2dx学习之路(二)

Cocos2d-x核心概念:
一、场景(Scene)和层(Layer)
场景:特定时间、特定地点发生的事件的集合
例如:
进入一个游戏的战斗场景后,整个的一个战斗过程就是一个战斗场景。
登录游戏的时候,需要输入账号密码,那么整个登录过程就是一个登录场景。
登录后与一个进度条的加载,叫资源加载场景。
层:图层
一个场景至少有一个层,可以有多个层。
二、精灵(Sprite)
在屏幕上移动的对象,它能被控制(在屏幕上移动的对象,可以被控制,但不是一定)
例如:吃鸡游戏人物角色,枪,车 都是精灵
背景图片,可以移动的角色,可以控制的手指,序列帧动画,骨骼动画。
运动方式:移动、旋转、缩放、动画等。
三、UI组件
界面上的元素
例如:按钮、文本框、文本标签、列表、进度条、滑动条、菜单(cocos2d菜单不好用,一般自己做),复选框。
四、导演(Director)
控制电影制作流程,指导团队完成各项任务。(可以看作一个总控)
节点类Node
什么是游戏元素?
游戏中的场景、精灵、文本、地图、菜单、层等任何对象。
Node的属性:

元素的基本属性Node的属性
元素标识_tag
元素的名称_name
元素间的位置关系_position,_positionZ,_anchorPoint
元素的大小_contenSize
元素的旋转角度_rotationX,_rotationY,_rotationZ-X,_rotationZ-Y
元素的缩放系数__scaleX,_scaleY,_scaleZ
元素是否显示_visible

如果节点被添加到一个父节点中,那么父节点的属性变化会被应用到子节点中。
创建Node对象:
cocos2d-x中创建对象使用create,而不是new关键字。

auto node = Node:: create();//创建Node对象
node -> setTag(100);		//设置标识
node -> setName("容器节点")	//设置元素名称
node -> setPosition(Vec2::ZERO);//设置坐标位置
node -> setAnchorPoint(Vec2::ANCHOR_MIDDLE);//设置锚点在正中心
node -> setRotation(90);//设置旋转90°
node -> setContentSize(Size(100*100));//设置大小100*100
node -> setScale(10);//设置放大10倍显示
node -> setVisible(false);//设置不显示

在Node上增加子节点:
在父节点中默认显示层级,添加默认元素标识的子节点。
parentNode->addChild(node);
在父节点中指定显示层级,添加默认元素标识的子节点
parentNode->addChild(node,zorder);
在父节点中指定显示层级,添加指定元素标识的子节点
parentNode->addChild(node,zorder, tag);
Node类中提供了三种添加子节点的重载方法:

1Node::addChild(Node*node)
2Node::addChild(Node*node,int zorder)
2Node::addChild(Node*node,int zorder, int tag)

查找子节点
通过元素标识查找(优先考虑)
auto node = parentNode->getChildByTag(tag);
通过元素名称查找
auto node = parentNode->getChildByName(tag);

**遍历查找**
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(child);
删除所有子节点
parentNode->removeAllChildren();
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒德久远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值