Cocos2d-x学习笔记(十二)3D特效
特效类即是GridAction类,其实就是基于网格的3D动作类。需开启OpenGL的深度缓冲,否则容易3D失真。
下边是一个snippet,创建网格对象,并将其添加到当前layer;同时,将进行3D特效的对象,添加到网格对象上。
gridNodeTarget = NodeGrid::create();
addChild(gridNodeTarget);// add to current layer auto bg = Sprite::create("background.png");
bg->setPosition(Vec2(visibleSize.width/, visibleSize.height /));
gridNodeTarget->addChild(bg); sprite = Sprite::create("hero.png");
sprite->setPosition(Vec2(visibleSize.width / , visibleSize.height / ));
gridNodeTarget->addChild(sprite);
下边是3D特效类的使用,在此不再展示效果。
void MyAction::goMenu(Ref* pSender)
{
Size visibleSize = Director::getInstance()->getVisibleSize();
log("Tag = %i",this->getTag()); switch (this->getTag()) {
case kFlipX3D:
// X轴3D翻转,参数为持续时间
gridNodeTarget->runAction(FlipX3D::create(3.0f));
break;
case kPageTurn3D:
// 翻页特效,第一个参数为持续时间,第二个参数为网格大小
gridNodeTarget->runAction(PageTurn3D::create(3.0f, Size(,)));
break;
case kLens3D:
// 凸透镜特效,第一个参数为持续时间,第二参数为网格大小,第三个参数为透镜中心,第四个参数为透镜半径
gridNodeTarget->runAction(Lens3D::create(3.0f, Size(,),Vec2(visibleSize.width/,visibleSize.height/),));
break;
case kShaky3D:
// 晃动特效,第一个参数为持续参数,的哥参数为网格大小,第三个参数为晃动范围,第四个参数为Z轴晃动
gridNodeTarget->runAction(Shaky3D::create(3.0f, Size(,),,false));
break;
case kWaves3D:
// 3D波动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为波动次数,第四个参数为振幅
gridNodeTarget->runAction(Waves3D::create(3.0f, Size(,),,));
break;
case kJumpTiles3D:
// 3D瓦片跳动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为次数,第四个参数为振幅
gridNodeTarget->runAction(JumpTiles3D::create(3.0f,Size(,),,));
break;
case kShakyTiles3D:
// 3D瓦片晃动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为晃动范围,第四个参数为是否伴有Z轴晃动
gridNodeTarget->runAction(ShakyTiles3D::create(3.0f,Size(,),,false));
break;
case kWavesTiles3D:
// 3D瓦片波动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为波动次数,第四个参数为振幅
gridNodeTarget->runAction(WavesTiles3D::create(3.0f,Size(,),,));
break;
}
}
其实,3D效果无非是通过范围控制将2D的效果变得更逼真,更接近现实世界。
Cocos2d-x学习笔记(十二)3D特效的更多相关文章
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- java jvm学习笔记十二(访问控制器的栈校验机制)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...
- (C/C++学习笔记) 十二. 指针
十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- ROS学习笔记十二:使用gazebo在ROS中仿真
想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...
- JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)
1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...
- MySQL学习笔记十二:数据备份与恢复
数据备份 1.物理备份与逻辑备份 物理备份 物理备份就是将数据库的数据文件,配置文件,日志文件等复制一份到其他路径上,这种备份速度一般较快,因为只有I/O操作.进行物理备份时,一般都需要关闭mysql ...
- python 学习笔记十二 CSS基础(进阶篇)
1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
随机推荐
- Centos安装ELK5.3.2
一.注意情况 1.elk的版本要一致. 2.ElasticSearch是基于lucence开发的,也就是运行需要java支持.所以要先安装JAVA环境.由于es5.x依赖于JDK1.8,所以需要安装J ...
- Andrew Ng-ML-第十五章-降维
1.数据压缩 数据压缩不仅能够减小存储空间,并且能够加速学习算法.那么什么是数据压缩呢?下面给出了一个简单的例子: 图1.数据压缩的概念 举了两个例子,一个是横轴x1是厘米,纵轴特征x2是英尺,这明显 ...
- PAT 1015 Reversible Primes[求d进制下的逆][简单]
1015 Reversible Primes (20)(20 分)提问 A reversible prime in any number system is a prime whose "r ...
- Linux实验楼学习之二
新建文件1-1.c touch 1-1.c 编辑文件1-1.c gedit 1-1.c 生成可执行文件1-1.c gcc -o 1-1 1-1.c 执行可执行文件1-1 ./1-1
- 机器学习理论基础学习18---高斯过程回归(GPR)
一.高斯(分布)过程(随机过程)是什么? 一维高斯分布 多维高斯分布 无限维高斯分布 高斯网络 高斯过程 简单的说,就是一系列关于连续域(时间或空间)的随机变量的联合,而且针对每一个时间或是空间点 ...
- Spring Security中异常上抛机制及对于转型处理的一些感悟
在使用Spring Security的过程中,我们会发现框架内部按照错误及问题出现的场景,划分出了许许多多的异常,但是在业务调用时一般都会向外抛一个统一的异常出来,为什么要这样做呢,以及对于抛出来的异 ...
- 复习总结《一》MFC消息映射
长时间人容易遗忘,从新捡起!特做下记录 MFC消息映射 1.在MFC中消息映射主要牵扯到三个宏分别为: DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(theClass ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON SigmaImage1
zw版[转发·台湾nvp系列Delphi例程]HALCON SigmaImage1 procedure TForm1.Button1Click(Sender: TObject);var img, im ...
- MySQL从删库到跑路(四)——MySQL数据库创建实例
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.创建数据库 1.创建数据库 创建数据库,指定数据库的默认字符集为utf8.create database sch ...
- EntityFramework包含作用
System.Data.Entity.Infrastructure.DbQuery的引用需要加入上面那个包