开发者社区> 珲少> 正文

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);
创建扭曲旋转的特效,参数为:执行时间,网格尺寸,扭曲旋转中心,旋转次数,旋转幅度

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
unity动画之帧动画使用
使用unity实现lol寒冰帧动画
281 0
将 WebGL 动画作为背景
大家好我是FLy哥,又到了周末了, 这次分享的文章不是很长,如果你正在或者将来会涉及到你的博客,就是如何在正常的网页中加入酷炫的3D效果: 图片 webgl 动画 上面的3D动画 其实就是整个网页的背景,然后你的html 页面 还是正常写的,互不干涉,其实还就是一个字, 让自己的页面看着更加花里胡哨的 图片 花里胡哨 我们看看如何解决吧??? 有 2 种方法: 方法1 将画布的 CSS 属性 position 设置成 fixed #canvas { position: fixed; left: 0; top: 0; z-index: -1; ...} 并将 z-index 设置成 -
134 0
threejs 贴图动画总结
threejs 贴图动画总结
458 0
实现场景切换的时候淡入淡出的效果(Unity3D)
在游戏中不可避免的要进行场景切换,如果切换的场景要加载的资源太多太大,那么就要耗时很长时间,这对于用户的体验来说很不舒服,也就是常说的游戏卡了。怎么解决这种尴尬呢。比较推荐的就是异步加载场景,然后中间加一个过渡场景,过渡场景做的美观一些,然后加一个进度条,看起来就不会那么尴尬了。然后在场景过渡的时候,加一个淡入淡出的效果,就很nice了今天就实现一个场景切换的时候淡入淡出的效果。剩下的场景异步加载还有中间过渡场景有时间再写。
246 0
Cocos2d-x-v3中3D网格特效动画的应用
Cocos2d-x-v3中3D网格特效动画的应用
78 0
WPF特效-粒子动画
原文:WPF特效-粒子动画 WPF实现泡泡龙小游戏效果。     /// -Ball to Ball Collision - Detection and Handling    /// http://stackoverflow.
1332 0
WPF特效-实现弧形旋转轮播图
原文:WPF特效-实现弧形旋转轮播图        项目遇到,琢磨并实现了循环算法,主要处理循环替换显示问题       (如:12张图组成一个圆弧,但总共有120张图需要呈现,如何在滑动中进行显示块的替换,并毫无卡顿)        处理的自己感觉比较满意,记录一下。
1916 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
360°全景视频播放器的实现原理
立即下载
3D动画的菜谱式灯光与云渲染
立即下载
骨骼动画实践
立即下载