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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/202620.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​LeetCode解法汇总2304. 网格中的最小路径代价

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个下…

Tars-GO 开发

默认环境是安装好的 创建服务: tarsgo make App Server Servant GoModuleName Tars 实例的名称&#xff0c;有三个层级&#xff0c;分别是 App&#xff08;应用&#xff09;、Server&#xff08;服务&#xff09;、Servant&#xff08;服务者&#xff0c;有时也称 Object&am…

构造命题公式的真值表

构造命题公式的真值表 1&#xff1a;实验类型&#xff1a;验证性2&#xff1a;实验目的&#xff1a;3&#xff1a;逻辑联结词的定义方法4&#xff1a;命题公式的表示方法5&#xff1a;【实验内容】 1&#xff1a;实验类型&#xff1a;验证性 2&#xff1a;实验目的&#xff1a…

Python满天星

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…

Linux 家目录和根目录

摘要&#xff1a; 在 Linux 操作系统中&#xff0c;家目录和根目录是两个非常重要的概念。它们是 Linux 文件系统中的两个关键节点&#xff0c;为用户和系统进程提供存储、管理和访问文件和目录的接口。本文旨在深入探讨和理解这两个目录的结构、功能和使用方式&#xff0c;同时…

C#,《小白学程序》第六课:队列(Queue)其二,队列的应用,编写《实时叫号系统》

医院里面常见的《叫号系统》怎么实现的&#xff1f; 1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序…

<C++> 继承

目录 前言 一、继承概念 1. 继承概念 2. 继承定义格式 3. 继承关系和访问限定符 4. 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、菱形继承及菱形虚拟继承 1. 菱形继承 2. 虚…

什么是高防IP?有什么优势?怎么选择高防IP?

在当今的互联网环境中&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击已经成为一种常见的安全威胁。这种攻击通过向目标服务器发送大量的无效流量&#xff0c;使其无法处理正常的请求&#xff0c;从而达到迫使服务中断的目的。作为一个用户&#xff0c;你是否曾遇…

【Web】PhpBypassTrick相关例题wp

目录 ①[NSSCTF 2022 Spring Recruit]babyphp ②[鹤城杯 2021]Middle magic ③[WUSTCTF 2020]朴实无华 ④[SWPUCTF 2022 新生赛]funny_php 明天中期考&#xff0c;先整理些小知识点冷静一下 ①[NSSCTF 2022 Spring Recruit]babyphp payload: a[]1&b1[]1&b2[]2&…

Go 语言中的 Switch 语句详解

switch语句 使用switch语句来选择要执行的多个代码块中的一个。 在Go中的switch语句类似于C、C、Java、JavaScript和PHP中的switch语句。不同之处在于它只执行匹配的case&#xff0c;因此不需要使用break语句。 单一case的switch语法 switch 表达式 { case x:// 代码块 cas…

【深度学习】如何选择神经网络的超参数

1. 神经网络的超参数分类 神经网路中的超参数主要包括: 1. 学习率 η 2. 正则化参数 λ 3. 神经网络的层数 L 4. 每一个隐层中神经元的个数 j 5. 学习的回合数Epoch 6. 小批量数据 minibatch 的大小 7. 输出神经元的编码方式 8. 代价函数的选择 9. 权重初始化的方法 …

2023.11.24 海豚调度,postgres库使用

目录 海豚调度架构dolphinscheduler DAG(Directed Acyclic Graph)&#xff0c; 个人自用启动服务 DS的架构(海豚调度) 海豚调度架构dolphinscheduler 注:需要先开启zookeeper服务,才能进行以下操作 通过UI进行工作流的配置操作, 配置完成后, 将其提交执行, 此时执行请求会被…

【数据分享】我国12.5米分辨率的DEM地形数据(免费获取/地理坐标系)

DEM地形数据是我们在各种研究和设计中经常使用的数据&#xff01;之前我们分享过500米分辨率的DEM地形数据、90米分辨率的DEM地形数据、30米分辨率的DEM地形数据&#xff08;均可查看之前的文章获悉详情&#xff09;。 本次我们为大家带来的是分辨率为12.5m的DEM地形数据&#…

【反射】简述反射的构造方法,成员变量成员方法

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f970;欢迎并且感谢大家指出我的问题 文章目录 &#x1f384;什么是反射&#x1f384;获取class对象的三种方式⭐代码实现 &#x1f3…

【黑马甄选离线数仓day04_维度域开发】

1. 维度主题表数据导出 1.1 PostgreSQL介绍 PostgreSQL 是一个功能强大的开源对象关系数据库系统&#xff0c;它使用和扩展了 SQL 语言&#xff0c;并结合了许多安全存储和扩展最复杂数据工作负载的功能。 官方网址&#xff1a;PostgreSQL: The worlds most advanced open s…

Java Web——XML

1. XML概述 XML是EXtensible Markup Language的缩写&#xff0c;翻译过来就是可扩展标记语言。XML是一种用于存储和传输数据的语言&#xff0c;它使用标签来标记数据&#xff0c;以便于计算机处理和我们人来阅读。 “可扩展”三个字表明XML可以根据需要进行扩展和定制。这意味…

【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《理解ARM架构》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;直接操作寄存器点亮LED灯&#x1f3c0;地址空间&#x1f3c0;ARM内部的寄存…

Godot

前言 为什么要研究开源引擎 主要原因有&#xff1a; 可以享受“信创”政策的红利&#xff0c;非常有利于承接政府项目。中美脱钩背景下&#xff0c;国家提出了“信创”政策。这个政策的核心就是&#xff0c;核心技术上自主可控。涉及的产业包括&#xff1a;芯片、操作系统、数据…

Tiktok小店如何入驻?注册流程与资料全解

作为国内成功的出海App之一&#xff0c;Tiktok的特色就是社交平台兴趣电商&#xff0c;已然成为当前跨境电商的一大趋势。数据显示&#xff0c;目前Tiktok全球月活跃用户已接近16亿&#xff0c;正是红海一片。非常值得跨境电商玩家入局&#xff01;今天就来给大家整理一份tk小店…

uniapp IOS从打包到上架流程(详细简单) 原创

​ 1.登入苹果开发者网站&#xff0c;打开App Store Connect ​ 2.新App的创建 点击我的App可以进入App管理界面&#xff0c;在右上角点击➕新建App 即可创建新的App&#xff0c;如下图&#xff1a; ​ 3.app基本信息填写 新建完App后&#xff0c;需要填写App的基本信息&…