当前位置: 首页 > news >正文

cocos2dx ​​Animate3D(二)

Twirl

扭曲旋转特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子)
// 整个屏幕被分成几行几列 
// 扭曲中心位置 
// 扭曲的数量 
// 振幅 
static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude);

源码

void Twirl::update(float time)
{int i, j;Vec2    c = _position;for (i = 0; i < (_gridSize.width+1); ++i){for (j = 0; j < (_gridSize.height+1); ++j){Vec3 v = getOriginalVertex(Vec2(i ,j));Vec2 avg(i-(_gridSize.width/2.0f), j-(_gridSize.height/2.0f));float r = avg.getLength();float amp = 0.1f * _amplitude * _amplitudeRate;float a = r * cosf( (float)M_PI/2.0f + time * (float)M_PI * _twirls * 2 ) * amp;Vec2 d(sinf(a) * (v.y-c.y) + cosf(a) * (v.x-c.x),cosf(a) * (v.y-c.y) - sinf(a) * (v.x-c.x));v.x = c.x + d.x;v.y = c.y + d.y;setVertex(Vec2(i ,j), v);}}
}

示例

cc.Twirl:create(2, cc.size(12,8), cc.p(size.width/2, size.height/2), 1, 2.5)

ShakyTiles3D

瓷砖晃动特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列 
// 晃动的范围 
// z轴是否晃动 
static ShakyTiles3D* create(float duration, const Size& gridSize, int range, bool shakeZ);

源码

void ShakyTiles3D::update(float /*time*/)
{int i, j;for (i = 0; i < _gridSize.width; ++i){for (j = 0; j < _gridSize.height; ++j){Quad3 coords = getOriginalTile(Vec2(i, j));// Xcoords.bl.x += ( rand() % (_randrange*2) ) - _randrange;coords.br.x += ( rand() % (_randrange*2) ) - _randrange;coords.tl.x += ( rand() % (_randrange*2) ) - _randrange;coords.tr.x += ( rand() % (_randrange*2) ) - _randrange;// Ycoords.bl.y += ( rand() % (_randrange*2) ) - _randrange;coords.br.y += ( rand() % (_randrange*2) ) - _randrange;coords.tl.y += ( rand() % (_randrange*2) ) - _randrange;coords.tr.y += ( rand() % (_randrange*2) ) - _randrange;if (_shakeZ){coords.bl.z += ( rand() % (_randrange*2) ) - _randrange;coords.br.z += ( rand() % (_randrange*2) ) - _randrange;coords.tl.z += ( rand() % (_randrange*2) ) - _randrange;coords.tr.z += ( rand() % (_randrange*2) ) - _randrange;}setTile(Vec2(i, j), coords);}}
}

示例

cc.ShakyTiles3D:create(t, cc.size(16,12), 5, false)

ShatteredTiles3D

破碎的3D瓷砖特效

请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列
// 晃动的范围 
// z轴是否晃动 
static ShatteredTiles3D* create(float duration, const Size& gridSize, int range, bool shatterZ);

源码

void ShatteredTiles3D::update(float /*time*/)
{int i, j;if (_once == false){for (i = 0; i < _gridSize.width; ++i){for (j = 0; j < _gridSize.height; ++j){Quad3 coords = getOriginalTile(Vec2(i ,j));// Xcoords.bl.x += ( rand() % (_randrange*2) ) - _randrange;coords.br.x += ( rand() % (_randrange*2) ) - _randrange;coords.tl.x += ( rand() % (_randrange*2) ) - _randrange;coords.tr.x += ( rand() % (_randrange*2) ) - _randrange;// Ycoords.bl.y += ( rand() % (_randrange*2) ) - _randrange;coords.br.y += ( rand() % (_randrange*2) ) - _randrange;coords.tl.y += ( rand() % (_randrange*2) ) - _randrange;coords.tr.y += ( rand() % (_randrange*2) ) - _randrange;if (_shatterZ) {coords.bl.z += ( rand() % (_randrange*2) ) - _randrange;coords.br.z += ( rand() % (_randrange*2) ) - _randrange;                coords.tl.z += ( rand() % (_randrange*2) ) - _randrange;coords.tr.z += ( rand() % (_randrange*2) ) - _randrange;}setTile(Vec2(i, j), coords);}}_once = true;}
}

示例

cc.ShatteredTiles3D:create(t, cc.size(16,12), 5, false)

ShuffleTiles

瓷砖洗牌特效

请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列 
// 随即速度基数(即会用此值作为底数来随机产生值) 
static ShuffleTiles* create(float duration, const Size& gridSize, unsigned int seed);

源码

void ShuffleTiles::update(float time)
{Tile *tileArray = (Tile*)_tiles;for (int i = 0; i < _gridSize.width; ++i){for (int j = 0; j < _gridSize.height; ++j){tileArray->position = Vec2((float)tileArray->delta.width, (float)tileArray->delta.height) * time;placeTile(Vec2(i, j), tileArray);++tileArray;}}
}

示例

local shuffle = cc.ShuffleTiles:create(t, cc.size(16,12), 25)
local shuffle_back = shuffle:reverse()
local delay = cc.DelayTime:create(2)return cc.Sequence:create(shuffle, shuffle_back, delay)

FadeOutTRTiles、FadeOutBLTiles、FadeOutUpTiles、FadeOutDownTiles

  • FadeOutTRTiles :淡出效果,从左下角到右上角
  • FadeOutBLTiles :淡出效果,从右上角到左下角
  • FadeOutUpTiles :折叠效果,从下到上
  • FadeOutDownTiles :折叠效果,从上到下

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

// 时间
// 网格大小 
static FadeOutTRTiles* create(float duration, const Size& gridSize);
static FadeOutBLTiles* create(float duration, const Size& gridSize);
static FadeOutUpTiles* create(float duration, const Size& gridSize);
static FadeOutDownTiles* create(float duration, const Size& gridSize);

示例

local function FadeOutTRTilesDemo(t)local fadeout = cc.FadeOutTRTiles:create(t, cc.size(16,12))local back = fadeout:reverse()local delay = cc.DelayTime:create(0.5)return cc.Sequence:create(fadeout, back, delay)
endlocal function FadeOutBLTilesDemo(t)local fadeout = cc.FadeOutBLTiles:create(t, cc.size(16,12))local back = fadeout:reverse()local delay = cc.DelayTime:create(0.5)return cc.Sequence:create(fadeout, back, delay)
endlocal function FadeOutUpTilesDemo(t)local fadeout = cc.FadeOutUpTiles:create(t, cc.size(16,12))local back = fadeout:reverse()local delay = cc.DelayTime:create(0.5)return cc.Sequence:create(fadeout, back, delay)
endlocal function FadeOutDownTilesDemo(t)local fadeout = cc.FadeOutDownTiles:create(t, cc.size(16,12))local back = fadeout:reverse()local delay = cc.DelayTime:create(0.5)return cc.Sequence:create(fadeout, back, delay)
end

TurnOffTiles

方块消失特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列
static TurnOffTiles* create(float duration, const Size& gridSize);
// seed 随即速度基数(即会用此值作为底数来随机产生值)
static TurnOffTiles* create(float duration, const Size& gridSize, unsigned int seed);

示例

local function TurnOffTilesDemo(t)local fadeout = cc.TurnOffTiles:create(t, cc.size(48,32), 25)local back = fadeout:reverse()local delay = cc.DelayTime:create(0.5)return cc.Sequence:create(fadeout, back, delay)
end

WavesTiles3D

瓷砖波浪特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列
// 波动的速率 
// 振幅
static WavesTiles3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);

示例

local function WavesTiles3DDemo(t)return cc.WavesTiles3D:create(t, cc.size(15,10), 4, 120)
end

JumpTiles3D

3D效果tiles跳跃
请添加图片描述

// 持续时间(时间过后不会回到原来的样子)
// 整个屏幕被分成几行几列
// 跳几下
// 振幅
static JumpTiles3D* create(float duration, const Size& gridSize, unsigned int numberOfJumps, float amplitude);

示例

local function JumpTiles3DDemo(t)return cc.JumpTiles3D:create(t, cc.size(15,10), 2, 30)
end

SplitRows、SplitCols

  • SplitRows 分多行消失特效
  • SplitCols 分多列消失特效
    请添加图片描述
    请添加图片描述
// 时间
// 行数或者列数static SplitRows* create(float duration, unsigned int rows);static SplitCols* create(float duration, unsigned int cols);

示例

local function SplitRowsDemo(t)return cc.SplitRows:create(t, 9)
endlocal function SplitColsDemo(t)return cc.SplitCols:create(t, 9)
end

PageTurn3D

3D翻页特效,从右下角往左上角翻
请添加图片描述

// 时间
// 网格大小 
static PageTurn3D* create(float duration, const Size& gridSize);

示例

local function PageTurn3DDemo(t)cc.Director:getInstance():setDepthTest(true)return cc.PageTurn3D:create(t, cc.size(15,10))
end

相关文章:

  • 《微信小程序开发从入门到实战》学习二十五
  • Qt/QML编程学习之心得:一个Qt工程的学习笔记(九)
  • 2023-11-22 LeetCode每日一题(网格中的最小路径代价)
  • C#语言高阶开发
  • 药品一致性评价工作开展流程(常见问题40个)
  • 【自动驾驶】一些业内自动驾驶专业术语释义
  • C++编程——输入
  • JVM 之 class文件详解
  • 2023.11.24 海豚调度,postgres库使用
  • 智慧城市内涝积水监测仪功能,提升城市预防功能
  • 初识Linux(1),看了这篇文章,妈妈再也不用担心我Linux找不到门了。
  • 2个视频怎么做一个二维码?二维码展示多内容的方法
  • 「Verilog学习笔记」不重叠序列检测
  • 【Python 训练营】N_6 求素数
  • 二次开发问题汇总【C#】
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【EOS】Cleos基础
  • css属性的继承、初识值、计算值、当前值、应用值
  • echarts的各种常用效果展示
  • flask接收请求并推入栈
  • If…else
  • iOS | NSProxy
  • js学习笔记
  • MySQL数据库运维之数据恢复
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • win10下安装mysql5.7
  • 包装类对象
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端攻城师
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 数据仓库的几种建模方法
  • 异常机制详解
  • 用Canvas画一棵二叉树
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • (C语言)共用体union的用法举例
  • (poj1.2.1)1970(筛选法模拟)
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (接口封装)
  • (接口自动化)Python3操作MySQL数据库
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)ORM
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .mysql secret在哪_MySQL如何使用索引
  • .Net Core 中间件与过滤器
  • .NET 的程序集加载上下文
  • .NET/C# 使窗口永不获得焦点
  • .NET和.COM和.CN域名区别
  • .net知识和学习方法系列(二十一)CLR-枚举
  • /tmp目录下出现system-private文件夹解决方法
  • ??javascript里的变量问题
  • @RunWith注解作用