Cocos2d-x-v3中3D网格特效动画的应用

简介:

Cocos2d-x-v3中3D网格特效动画的应用

一、网格特效的使用原理

        基础的动作是对节点整体进行移动,变形等操作,网格特效的原理是将节点分割成多个尺寸相同的网格,根据改变每个网格块的属性使整体节点产生3D的效果。

二、网格特效的基本用法

      在cocos2d-x中,v3的版本新引入了一个类NodeGrid,专门用来包装网格的特效,示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     //获取屏幕尺寸
     Size visibleSize = Director::getInstance()->getVisibleSize();
     Vec2 origin = Director::getInstance()->getVisibleOrigin();
     //加载精灵
     auto  sprite = Sprite::create( "HelloWorld.png" );
     sprite->setPosition(Vec2(visibleSize.width/2+origin.x, visibleSize.height/2+origin.y));
     //创建网格特效包装类
     NodeGrid * nodeg = NodeGrid::create();
     nodeg->setPosition(Vec2::ZERO);
     //添加播放特效的精灵
     nodeg->addChild(sprite);
     this ->addChild(nodeg);
     //参数的含义 分别是 执行时间,切分的网格大小,波浪次数,波浪大小
     Waves3D * ani3d = Waves3D::create(2, Size(15, 15), 6, 4);
     //执行特效
     nodeg->runAction(ani3d);

三、系统提供的网格特效

static Waves3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);

创建波浪3D效果,参数含义为:执行时间,网格尺寸,波浪次数,波浪大小

static FlipX3D* create(float duration);

以x为轴进行翻转

static FlipY3D* create(float duration);

以y为轴进行翻转

static Lens3D* create(float duration, const Size& gridSize, const Vec2& position, float radius);

创建镜头的3D效果,参数为:执行时间,网格大小,镜头中心,镜头半径

static Ripple3D* create(float duration, const Size& gridSize, const Vec2& position, float radius, unsigned int waves, float amplitude);

创建波纹特效,参数为:执行时间,网格大小,波纹中心,波纹半径,波纹计数,振幅

static Shaky3D* create(float initWithDuration, const Size& gridSize, int range, bool shakeZ);

创建震动特效,参数为:执行时间,网格大小,震动范围,是否波动z轴

static Liquid* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);

创建液体特效,参数为:执行时间,网格尺寸,流动次数,幅度

static Waves* create(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical);

创建平面波纹特效,参数为:执行时间,网格尺寸,波纹次数,波纹振幅,开关横向波纹,开关纵向波纹

 static Twirl* create(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude);
创建扭曲旋转的特效,参数为:执行时间,网格尺寸,扭曲旋转中心,旋转次数,旋转幅度

目录
相关文章
|
29天前
|
前端开发 JavaScript 开发者
【QML进阶 进度条设计】打造动态弧形进度条特效
【QML进阶 进度条设计】打造动态弧形进度条特效
84 1
|
4月前
|
图形学
Unity——拖尾特效
Unity——拖尾特效
112 0
|
4月前
|
图形学 iOS开发
Unity——动效与缓动动画
Unity——动效与缓动动画
|
图形学
unity动画之帧动画使用
使用unity实现lol寒冰帧动画
unity动画之帧动画使用
|
PHP 图形学
Unity Cinemachine & Timeline 制作镜头动画
Unity Cinemachine & Timeline 制作镜头动画
485 0
Unity Cinemachine & Timeline 制作镜头动画
|
前端开发 数据可视化
threejs 贴图动画总结
threejs 贴图动画总结
threejs 贴图动画总结
|
编解码
unity3dUGUI之UI粒子特效自适应缩放
using UnityEngine; using System.Collections; using System.Collections.Generic; public class UIParticleScale : MonoBehaviour...
1523 0
Cocos2d-x-v3中3D网格特效动画的应用
Cocos2d-x-v3中3D网格特效动画的应用
147 0
|
C#
WPF特效-粒子动画
原文:WPF特效-粒子动画 WPF实现泡泡龙小游戏效果。     /// -Ball to Ball Collision - Detection and Handling    /// http://stackoverflow.
1419 0
|
算法 C# 容器
WPF特效-实现弧形旋转轮播图
原文:WPF特效-实现弧形旋转轮播图        项目遇到,琢磨并实现了循环算法,主要处理循环替换显示问题       (如:12张图组成一个圆弧,但总共有120张图需要呈现,如何在滑动中进行显示块的替换,并毫无卡顿)        处理的自己感觉比较满意,记录一下。
2042 0