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

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

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


一、网格特效的使用原理


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


二、网格特效的基本用法


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


   //获取屏幕尺寸

   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);

创建扭曲旋转的特效,参数为:执行时间,网格尺寸,扭曲旋转中心,旋转次数,旋转幅度

目录
相关文章
|
图形学
unity动画之帧动画使用
使用unity实现lol寒冰帧动画
|
C#
WPF特效-粒子动画
原文:WPF特效-粒子动画 WPF实现泡泡龙小游戏效果。     /// -Ball to Ball Collision - Detection and Handling    /// http://stackoverflow.
1473 0
|
8月前
|
图形学 Android开发
【实现100个unity特效之6】Unity2d光源的使用
【实现100个unity特效之6】Unity2d光源的使用
86 0
|
8月前
|
开发工具 图形学
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
648 0
|
编解码
unity3dUGUI之UI粒子特效自适应缩放
using UnityEngine; using System.Collections; using System.Collections.Generic; public class UIParticleScale : MonoBehaviour...
1608 0
|
测试技术
[cocos2dx]精灵遮罩
首先得理解一些东西。 1.理解颜色混合。精灵有个成员函数:setBlendFunc(),这个函数以一个ccBlendFunc类型的变量为参数。这个ccBlendFunc是个结构体。
1216 0
|
前端开发 容器 内存技术
用silverlight做动画-相机
用silverlight做动画-相机   适合初学者学习   做一个相机的动画 和做flash动画一样,准备好素材   将素材放入项目中 开始正式制作前为了方便以后重用,就把这个动画做成usercontrol(和flash中的‘MovieClip’概念是一样的) 创建一个UserControl 图片放入舞台中并且调整好位置 用钢笔在最上层画一个图像做遮罩使用,和flash中的概念一样。
722 0
|
8月前
|
开发工具 图形学 git
【实现100个unity特效之7】unity 3d实现各种粒子效果
【实现100个unity特效之7】unity 3d实现各种粒子效果
194 0

热门文章

最新文章