特效类即是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特效的更多相关文章

  1. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  2. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  3. java jvm学习笔记十二(访问控制器的栈校验机制)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...

  4. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...

  5. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  6. ROS学习笔记十二:使用gazebo在ROS中仿真

    想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...

  7. JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)

    1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...

  8. MySQL学习笔记十二:数据备份与恢复

    数据备份 1.物理备份与逻辑备份 物理备份 物理备份就是将数据库的数据文件,配置文件,日志文件等复制一份到其他路径上,这种备份速度一般较快,因为只有I/O操作.进行物理备份时,一般都需要关闭mysql ...

  9. python 学习笔记十二 CSS基础(进阶篇)

    1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...

  10. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

随机推荐

  1. Hadoop 之日志管理—应用在 YARN 中运行时的日志

    背景: 在写这篇博文前,自己一直没有弄明白一个问题,“在 Map 函数和 Reduce 函数中使用 System.out.print 打印日志时,输出内容在哪里显示?”.试了好多回,在 log/* 目 ...

  2. hdu1251(统计难题)

    这题就是一个字典树的模板题 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Othe ...

  3. [LeetCode] 116&117. Populating Next Right Pointers in Each Node I&II_Medium tag: BFS(Dont know why leetcode tag it as DFS...)

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  4. [LeetCode] questions conclustion_BFS, DFS

    BFS, DFS 的题目总结. Directed graph: Directed Graph Loop detection and if not have, path to print all pat ...

  5. opencv3寻找最小包围矩形在图像中的应用-滚动条

    #include<opencv2/opencv.hpp> #include<iostream> #include<vector> using namespace c ...

  6. Lintcode: First Position of Target (Binary Search)

    Binary search is a famous question in algorithm. For a given sorted array (ascending order) and a ta ...

  7. EditPlus 中文版停止更新

    经过一段时间的考虑,我决定了终止 EditPlus 的中文版翻译工作. 感谢各位网友在这么长时间内对本汉化项目的关注.

  8. AO中的空间关系

    名词解释: Boundary(边界): 只有线和面才有边界.面的边界是指组成面的框架线:线的边界是指线的二个端点(即起点和终点,不包括中间部分的节点):点没有边界. Interior(内部): 除去边 ...

  9. ASCII说明和ASCII对照表

    ASCII 说明 ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符.标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字 ...

  10. emoj表情过滤

    用法:  isEmojiCharacter(input_value)   //  提交时候校验.true:emoj表情   undefined:无   if(isEmojiCharacter(val) ...