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.pswp.cn/news/160461.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160461.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160461.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

編程語言發展史:C語言的誕生及其影響

預計更新 第一部分&#xff1a;早期編程語言 1.1布爾代數和機器語言 1.2匯編語言的出現和發展 1.3高級語言的興起 第二部分&#xff1a;主流編程語言 1.1 C語言的誕生及其影響 1.2 C語言的發展和應用 1.3 Java語言的出現和發展 1.4 Python語言的興起和特點 1.5 JavaScript語言…

基于springboot實現攝影跟拍預定管理系統【項目源碼+論文說明】計算機畢業設計

基于springboot實現攝影跟拍預定管理系統演示 摘要 首先,論文一開始便是清楚的論述了系統的研究內容。其次,剖析系統需求分析,弄明白“做什么”,分析包括業務分析和業務流程的分析以及用例分析,更進一步明確系統的需求。然后在明白了系統的需求基礎上需要進一步地設計系統,主要…

【2018年數據結構真題】

方法一 給定一個含n(n>1)個整數的數組&#xff0c;請設計一個在時間上盡可能高效的算法&#xff0c;找出數組中未出現的最小正整數。例如&#xff0c;數組{-5&#xff0c;3&#xff0c;2&#xff0c;3}中未出現的最小正整數是1&#xff1b;數組{1&#xff0c;2&#xff0c;…

AIGC變革BI行業,永洪發布vividime全球化品牌

大數據產業創新服務媒體 ——聚焦數據 改變商業 國內BI商業智能市場&#xff0c;一直有著“內永洪&#xff0c;外Tableau”的說法。成立于2012年的永洪科技經過十多年的發展&#xff0c;早已崛起為國內大數據行業的一支勁旅。 ChatGPT火爆出圈之后&#xff0c;AIGC快速滲透&am…

每日一練 | 華為認證真題練習Day19

Day19 華為認證中級考試真題 1、DHCP協議運行過程中&#xff0c;客戶端從申請到IP地址時的流程是 A.1-2-3-4 B.1-4-3-2 C.3-2-1-4 D.3-4-1-2 2、VRRP報文的IP協議號是&#xff1a; A.112 B.114 C.116 D.118 3、MPLS的標簽字段共有多少bit? A.8 B.3 C.1 D.20 4…

【C++】vector的介紹與使用

&#x1f9d1;?&#x1f393;個人主頁&#xff1a;簡 料 &#x1f3c6;所屬專欄&#xff1a;C &#x1f3c6;個人社區&#xff1a;越努力越幸運社區 &#x1f3c6;簡 介&#xff1a;簡料簡料&#xff0c;簡單有料~在校大學生一枚&#xff0c;專注C/C/GO的干貨分…

2020年下半年試題一:論信息系統項目的成本管理

論文題目 1.概要敘述你參與過的信息系統項目&#xff08;項目的背景、項目規模、發起單位、目的、項目內容、組織結構、項目周期、交付的成果等&#xff09;&#xff0c;并說明你在其中承擔的工作&#xff08;項目背景要求本人真實經歷&#xff0c;不得抄襲及杜撰&#xff09;。…

編程語言發展史:匯編語言的出現和發展

一、匯編語言的出現 隨著計算機硬件的發展&#xff0c;機器語言變得越來越復雜&#xff0c;難以被人類程序員理解和編寫。因此&#xff0c;出現了更高級別的編程語言&#xff0c;這些語言使用類似英語的語法&#xff0c;使程序員能夠更容易地編寫和維護程序。 其中一種高級語…

web網頁滲透測試

web網頁滲透測試 流程 信息收集網站掃描訪問控制測試漏洞掃描嘗試注入攻擊驗證漏洞后滲透測試滲透測試報告 信息收集 收集目標網站的基本信息&#xff0c;包括域名、IP 地址、子域名等。使用 WHOIS 查詢、搜索引擎、子域名枚舉工具等進行信息收集。 網站掃描 使用端口掃描…

【Java 進階篇】Redis 數據結構:輕松駕馭多樣性

引言 Redis是一款強大的鍵值對存儲系統&#xff0c;其數據結構的多樣性是其引以為傲的特點之一。在這篇博客中&#xff0c;我們將深入探討Redis的主要數據結構&#xff0c;包括字符串、哈希表、列表、集合和有序集合&#xff0c;并通過實例代碼演示它們的用法。 1. 字符串&am…

在中國企業出海的大浪潮下,亞馬遜云科技提供遍及全球的基礎設施和技術支持

中國技術出海是中國企業更高層次更高質量的全球化。在人類文明發展史上&#xff0c;凝聚中國古人智慧結晶的造紙術、印刷術、火藥、指南針等&#xff0c;曾為中國技術出海寫下過濃墨重彩的一筆。在今天&#xff0c;如金山辦公、店匠科技、ADVANCE.AI等公司又以技術立業&#xf…

msvcp140.dll是什么?msvcp140.dll丟失的有哪些解決方法

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是“msvcp140.dll丟失”。這個錯誤通常會導致某些應用程序無法正常運行。為了解決這個問題&#xff0c;我們需要采取一些措施來修復丟失的msvcp140.dll文件。本文將詳細介紹5個解決msvcp140.dl…

Day27|Leetcode 39. 組合總和 Leetcode 40. 組合總和 II Leetcode131. 分割回文串

Leetcode 39. 組合總和 題目鏈接 39 組合總和 本題目和前面的組合問題差不多&#xff0c;只不過這里能重復選取數字&#xff0c;還是要注意組合的定義&#xff0c;交換數字順序還是算一個組合&#xff0c;所以這里還是用我們的startIndex來記錄取的數字到哪里了&#xff0c;下…

阿里云發送短信

官方代碼如下&#xff1a; // This file is auto-generated, dont edit it. Thanks. package com.aliyun.sample;import com.aliyun.tea.*;public class Sample {/*** 使用AK&SK初始化賬號Client* param accessKeyId* param accessKeySecret* return Client* throws Excep…

【電子通識】USB3.0和USB2.0有什么區別?

版本 USB2.0是2000年4月27日由USB-IF組織提出了USB2.0總線協議規范。 USB3.0是2008年11月17日由USB-IF組織提出了超高速USB3.0規范。 圖標對比 USB2.0的標志就是和USB1.1的標志基本上沒啥區別&#xff0c;還是以前的那個樣子&#xff0c;使用黑色顏色用標識 USB3.0它有一個S…

計算機畢業設計 基于微信小程序的“共享書角”圖書借還管理系統的設計與實現 Java實戰項目 附源碼+文檔+視頻講解

博主介紹&#xff1a;?從事軟件開發10年之余&#xff0c;專注于Java技術領域、Python人工智能及數據挖掘、小程序項目開發和Android項目開發等。CSDN、掘金、華為云、InfoQ、阿里云等平臺優質作者? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精…

pycurl>=7.43.0.5機器學習環境配置問題

去官網下載對應版本.whl文件&#xff0c;注意使用python --version提前查看 python版本信息和64bit還是32bit,下載對應版本。 cd 到該路徑下&#xff0c;并pip。6

opengl制作天空盒

首先創建頂點數組 unsigned int m_uiVaoBufferID; glGenVertexArrays(1, &m_uiVaoBufferID); 然后創建頂點緩沖區 float skyboxVertices[] {// positions-1.0f, 1.0f, -1.0f,-1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, 1.0f, -1.0f,-1.0f, 1.…

當npm下載庫失敗時可以用cnpm替代

下載cnpm npm install -g cnpm --registryhttp://registry.npmmirror.com 然后使用cnpm代替npm下載即可 cnpm install

使用gin 代理 web網頁

問web項目的代理&#xff0c;業界常用的方案是nginx做代理&#xff0c;這個是網上最多資料的。 因為我需要做自己的流量轉發&#xff0c;也就是所有訪問都要經過我的一個流量分發微服務&#xff0c;這和nginx作用沖突了。如果再加個nginx來做第一層方向代理和網頁的靜態資源代…