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 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
随机推荐
- 在MS SQL删除重复行的几种方法
1.如果有ID字段,就是具有唯一性的字段 delect table where id not in ( select max(id) ...
- 原生http模块与使用express框架对比
node的http创建服务与利用Express框架有何不同 原生http模块与使用express框架对比: const http = require("http"); let se ...
- EBS 多组织访问设置
如果想让你的职责下为单组织模式,那么你在Profile下只设置MO: Operating Unit的值,MO: Operating Unit提供只访问一个单独的OU.如果你想让你的职责下为多组织模式, ...
- python 文件不存在时才能写入,读写模式xt
想向一个文件中写入数据,但是前提必须是这个文件在文件系统上不存在.也就是不允许覆盖已存在的文件内容. 可以在open() 函数中使用x 模式来代替w 模式的方法来解决这个问题.比如: >> ...
- SVN Error: Unreadable path encountered; access denied;
最近在公司弄了版本库.将主代码丢到版本库后,想拉取新的分支.抛异常如下: SVN Error: Unreadable path encountered; access denied; 解决办法: 1. ...
- Nginx启动SSL功能
Nginx启动SSL功能,并进行功能优化,你看这个就足够了 一:开始Nginx的SSL模块 1.1 Nginx如果未开启SSL模块,配置Https时提示错误 nginx: [emerg] the &q ...
- C/C++之static函数与普通函数
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量 ...
- Python入门之面向对象编程(二)python类的详解
本文通过创建几个类来覆盖python中类的基础知识,主要有如下几个类 Animal :各种属性.方法以及属性的修改 Dog :将方法转化为属性并操作的方法 Cat :私人属性讲解,方法的继承与覆盖 T ...
- 探索Java8:(三)Predicate接口的使用
上一篇学习了下Function接口的使用,本篇我们学习下另一个实用的函数式接口Predicate. Predicate的源码跟Function的很像,我们可以对比这两个来分析下.直接上Predicat ...
- Visual Leak Detector简明使用教程
Visual Leak Detector是一款内存泄漏检测软件,主要的作用就是检测可能或者是存在内存泄露的地方,具体的功能的话,可以百度下,今天主要简单介绍下怎么使用 首先下载Visual Leak ...