Cocos2d-x之Node
| 版权声明:本文为博主原创文章,未经博主允许不得转载。

节点是cocosd-x游戏引擎中的重要元素,是其他重要游戏元素的基类,例如,场景Scene,图层Layer,菜单Menu和精灵sprite都是继承节点类Node.
节点类以树形结构表示,可以有子节点和父节点,方便在节点中添加或者删除其他节点,节点在cocosd-x游戏引擎中的常见表现是,场景类scene作为父节点,多个图层Layer添加到场景类中,这些图层可能有背景图层,菜单图层和事件图层等,在图层类Layer中在添加若干个游戏精灵,例如:背景,积分标签,玩家精灵,敌人精灵等。节点类的树形结构图:如右
节点的主要功能:
1).每个节点都可以含有子节点
2).节点可以添加周期性回调的方法
3).节点可以添加动作
节点类使用的情况;
1).需要父节点来管理和控制一批子节点的时候
2).需要自己定义一个在屏幕上显示的对象,这时候让心定义的类继承自Node,当一个类继承自Node时,它将有如下特点:

* 重写初始化的方法和周期性回调方法
* 在时间线上控制回调
* 重写渲染的绘制方法
Node类的主要保护成员:


Node类的主要函数





函数说明:
setRotation(value); 控制节点旋转多少角度

setScale(x,y); 节点的缩放

auto mouse = Sprite::create("mouse.png");
mouse->setPosition(Vec2(visibleSize.width / 3 + origin.x, visibleSize.height / 4 + origin.y));
mouse->setScale(0.5, 0.5);
//设置一个90度角的旋转
mouse->setRotation(90);
this->addChild(mouse, 1);

定时器函数:
scheduleUpdate() 调度"update"方法。
它的优先级将会是0,这个方法将会在每一帧都被调用。 拥有较小优先数值的调度方法将会在有拥用较大优先数值的方法之前被调用。 每一个节点只有一"update"能够被调度(你不能够有2个“update”选择器)。
scheduleUpdateWithPriority() 使用一个自定义优先级调度"update"方法。
这个选择器将会在每一帧被调用。 拥有较小优先数值的调度方法将会在有拥用较大优先数值的方法之前被调用。 每一个节点只有一"update"能够被调度(你不能够有2个“update”选择器)。

runAction();

实现一个mouse闪烁的动作:
auto mouse = Sprite::create("mouse.png");
mouse->setPosition(160,195);
mouse->setScale(0.5, 0.5);
this->addChild(mouse);
//创建一个闪烁的效果;下面代码表示一秒钟闪烁5次
auto blick = Blink::create(1, 5);
//是闪烁重复执行
auto repeat = RepeatForever::create(blick);
//执行动作
mouse->runAction(repeat);

Cocos2d-x之Node的更多相关文章
- Cocos2dx中利用双向链表实现无限循环滚动层
[Qboy原创] 在Cocos2dX 3.0 中已经实现一些牛逼的滚动层,但是对于有一些需要实现循环滚动的要求确没有实现,笔者在前段时间的一个做了一个游戏,需求是实现在少有的(13个)英雄中进行循环滚 ...
- 使用Physics_Body_Editor获得json文件的类
[转自]:http://www.cocoachina.com/bbs/read.php?tid=209290 工具介绍,json文件获得方法,请参考原帖 MyBodyParser.h // // My ...
- cocos2dx 动画控制概要
-------------------------------------------------Cocos2d 播放动画Node : 节点,所有显示容器的基础 Sprite : 使用图片的节点 An ...
- babeljs源码
babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...
- Cocos2D中Node的userObject实例变量使用时一个要注意的地方
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在Cocos2D中,CCNode对象有一个ivar为us ...
- 采用cocos2d-x lua 制作数字滚动效果样例
require "Cocos2d"require "Cocos2dConstants"local testscene = class("testsce ...
- cocos2d触碰例子代码
// // TestLayer.h // MiniTD // // Created by OnePiece on 12-7-30. // Copyright 2012年 __MyCompanyName ...
- 如何优化cocos2d程序的内存使用和程序大小
在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人 ...
- Cocos2d-x 3.2 学习笔记(五)Sprite Node
游戏中最重要的元素Sprite精灵,关于精灵的创建,精灵的控制等等. 涉及到的类Class: AnimationFrame 动画帧. Animation 动画对象:一个用来在精灵对象上表现动画的动画对 ...
- 如何优化cocos2d程序的内存使用和程序大小:第一部分
译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个 ...
随机推荐
- python-django之cookie及session
Cookie Cookie的由来 Http协议是无状态的 无状态的意思是每次都是独立的请求存在,它的执行情况和结果与前面的请求和后面的请求都无直接关系,它不会受到前面的请求响应情况直接影响,也不会直接 ...
- 为什么tcp-wrappers被Redhat Centos Fedora废弃?
1 简述 TCP wrappers is a simple tool to block incoming connection on application level. This was very ...
- Goals ? Ideals ?
Why is it important to set goals ? Because goal can help you do , be , and experience anything you w ...
- poj2752Seek the Name, Seek the Fame(next数组)
题目传送门 Seek the Name, Seek the Fame Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2439 ...
- 54.Counting Bits( 计算1的个数)
Level: Medium 题目描述: Given a non negative integer number num. For every numbers i in the range 0 ≤ ...
- C#的扩展方法学习
一,什么是扩展方法? 1,扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 2,扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用 ...
- 从OLLVM4.0.0升级到LLVM8.0.1,并且给LLVM增加Pass 插件系统
版本太低了,用得我这个揪心. 上周日决定把手头的ollvm从4.0.0升级到LLVM8.0.1. 里面的Pass的话,决定移植到8.0.1里面. 我习惯从代码上来动手 1:下载LLVM https: ...
- top查看进程的参数
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不 ...
- 基于 Scrapy-redis 两种形式的分布式爬虫
基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...
- 力扣—set matrix zeroes (矩阵置零) python实现
题目描述: 中文: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 英文: Given a m x n matrix, if an eleme ...