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的时候,社区里面的人们讨论了一个 ...
随机推荐
- upc组队赛14 Floating-Point Hazard【求导】
Floating-Point Hazard 题目描述 Given the value of low, high you will have to find the value of the follo ...
- cita 源码研究
适用环境 vim + YouCompleteMe 使用 github 源,不能使用 ustc 源 git clone --depth 1 --recusive https://github.com/k ...
- Spring Boot 支持 HTTPS 如此简单,So easy!
这里讲的是 Spring Boot 内嵌式 Server 打 jar 包运行的方式,打 WAR 包部署的就不存在要 Spring Boot 支持 HTTPS 了,需要去外部对应的 Server 配置. ...
- 如何使用 C++ Inja html template 模板
C++ html template Inja是现代C ++的模板引擎,受到jinja for python的启发.它有一个简单而强大的模板语法,包含所有变量,循环,条件,包含,回调,您需要的注释,嵌套 ...
- 39.Binary Tree Inorder Traversal(二叉树中序遍历)
Level: Medium 题目描述: Given a binary tree, return the inorder traversal of its nodes' values. 思路分析: ...
- 消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。
错误问题: 消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,8' 转换成数据类型 int 时失败. ps: 这是在后台分配菜单权限这个功能时出现的问题 一,解决方法: 将 ...
- Droppable(放置组件)
一.class加载方式 <div id="pop" class="easyui-droppable" style="width: 400px;h ...
- VoIP系统大盘点
一.VoIP拓扑 PBX是程控交换机,程控交换机有实体交换机和软件模拟的交换机. 软件模拟的交换机,即交换机服务器,常用开源的sip服务器有asterisk,freepbx, opensip, fre ...
- 2018-2-13-关于Host(主机)
title author date CreateTime categories 关于Host(主机) lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 ...
- Linux: 给右键菜单加一个“转换图片为jpg格式”
Linux上通常都会安装imagemagick这个小巧但又异常强大的工具.这个软件提供了一系列很好用的功能.这里说一说如何使用它的convert命令转换图片为jpg格式,以及如何把它添加到Thunar ...