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的时候,社区里面的人们讨论了一个 ...
随机推荐
- selenium快捷键操作
常用的键盘操作 send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space) send_keys(Keys.TA ...
- byte与base64string的相互转化以及加密算法
//在C#中 //图片到byte[]再到base64string的转换: Bitmap bmp = new Bitmap(filepath); MemoryStream ms = new Memory ...
- Cocos2d-x之Label
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 在游戏开发中经常会使用标签文字,例如,游戏介绍,玩家积分,菜单选项,文字提示等等. LabelTTF 直接支持使用 TTF 字库 ...
- “希希敬敬对”队软件工程第九次作业-beta冲刺第四次随笔
“希希敬敬对”队软件工程第九次作业-beta冲刺第四次随笔 队名: “希希敬敬对” 龙江腾(队长) 201810775001 杨希 201810812008 何敬 ...
- [CF1228] 简要题解
A 题意 求\(l \le x \le r\)的所有数位不同的数\(x\), 任意输出一个. \(1 \leq l \leq r \leq 10 ^5\) Solution 按照题意模拟即可. #in ...
- CSS深入理解line-height
1.line-height高度基于基线 2. 3.p元素的高度由行高决定的 4. 5.
- Linux查看软件安装路径,和文件的位置
查看软件是否安装:rpm -qa|grep xx 列出软件安装包安装的文件:rpm -ql 直接使用rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置 通过find去查找 ...
- htmlspecialchars_decode 解决掉 &
如果在请求中返回的内容包含 & 请使用htmlspecialchars_decode 搞一下,去掉. 这个纯粹为自己怕到时又找不到这个方法
- 一个spark streaming的黑名单过滤小例子
> nc -lk 9999 20190912,sz 20190913,lin package com.lin.spark.streaming import org.apache.spark.Sp ...
- [fw]IDT表的初始化
IDT表的初始化 linux内核的中断描述符表IDT是一个全局的数据,在i386平台上被定义为: struct desc_struct idt_table[256] __attribute__((_ ...