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的时候,社区里面的人们讨论了一个 ...
随机推荐
- create Excel file - snippet
http://www.codepal.co.uk/show/Line_breaks_lost_and_br_tags_show_when_exporting_to_Excel_file Protec ...
- css怎么解决表格边框线重复问题
<ul> <li><a href="#">1</a></li> <li><a href="# ...
- 【Python—字典的用法】找到多个字典的公共键
有 a,b,c,d,e,f 6名球员,他们在三轮比赛中的进球数用 s1,s2,s3 3个字典表示,找到每轮都有进球的球员? 创建 s1,s2,s3 3个字典素材 from random import ...
- <每日一题>题目4:for循环套生成器的面试题
题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g ...
- Linux上用sublime编辑Python时候出现"SyntaxError: Non-ASCII character ‘\xe5′ in file"的问题
Reopen with Encoding UTF-8也没用,那只是在编辑界面里面显示出中文而已,编译的时候还是不能识别中文. 所以,还是按网上说的吧,在每一个有中文的文件第一行加上# -*- codi ...
- linux+Apache开启伪静态配置
linux+Apache伪静态配置 一.环境准备:CentOS Linux release 7.4.1708 (Core)1.配置源[root@localhost ~]#yum install -y ...
- 【学习总结】Python-3- 类型判断之 isinstance 和 type 的区别
菜鸟教程-Python3-基本数据类型 关于类型查询: type() 函数:可以用来查询变量所指的对象类型 用 isinstance()函数:判断是否是某个类型 两者的区别: type()不会认为子类 ...
- sub
Popen.communicate(input=None)¶Interact with process: Send data to stdin. Read data from stdout and s ...
- SSH远程管理服务实战
目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交 ...
- solaris系统动态查看swap的使用情况
root@tt # root@tt # prstat -aPlease wait... PID USERNAME SIZE RSS STATE PRI NICE TIME CPU ...