教你徹底搞懂Cocos Creator Tween


Cocos 使用了Tween來代替原來的Action系統, 今天來給大家講解Tween如何使用, 幫助大家掌握Tween的使用,並且對Tween有一個更深入的了解。

這里有個cocos creator學習交流點擊可以直接進入

1: Tween到底是什么?

Cocos Creator 里面的Tween你可以理解為是一個容器對象, 在這個容器對象里面可以存放很多的”執行過程”,當執行這個Tween的時候,會一個一個過程的觸發執行。這樣Tween的使用就歸納總結出3個步驟:

(1): 創建一個Tween對象;

(2): 往Tween里面填加一個一個的執行過程;

(3): 執行Tween對象,引擎會一個一個的執行之前添加進來的過程。

例如:在0.5秒以內,讓A物體從當前位置,移動到(100, 0)位置,代碼如下

(1) 你要改變A物體位置,所以Tween的目標對象是A物體所在節點。

var t = cc.tween(A物體對應節點); 創建了一個針對A物體節點的Tween對象。

(2) 定制中間執行過程, 這個過程可以是一個,也可以是多個,這里我們是要從當前位置移動到(100, 0)的位置,所以使用tween對象的to函數來指定。

t.to(時間(0.5s), 屬性列表{}), 屬性列表,可以填寫Tween針對的目標對象實例中的任意屬性, 我們這里是x, y, 所以 t.to(0.5, {x: 100, y: 0}); 這樣就給目標物體創建了一個過程,0.5s之內從當前位置移動到目標位置(100, 0)。

(3) 啟動執行這個tween對象: t.start();

代碼如下:

// step1: 創建一個針對目標的tween對象

var t = cc.tween(this.node);

 

// step2: 添加執行過程;

t.to(0.5, {x: 100, y: 0});

 

// step3: 開始執行tween對象

t.start();

2: Tween 可以添加哪些過程

Tween可以添加哪些過程,我們可以去查看一下Tween的API文檔,在代碼編輯器里面右鍵Tween對象,然后在”Go to Definition”

這樣可以知道往這個Tween里面加入哪些過程。這些過程creator.d.ts里面都有,我這邊就不再重復的編寫,這里我就想分享一個小技巧,就是很多同學不知道props怎么寫,到底可以寫哪些內容?

添加一個對屬性進行絕對值計算的 action

@param duration duration

@param props {scale: 2, position: cc.v3(100, 100, 100)}

@param opts opts

其實這個很簡單,你只要打開target對象的類型,比如節點,cc.Node, 他有哪些屬性數據成員,這里的props就可以填寫哪些,不用死記硬背。

如果再執行的過程中要停止Tween的執行,可以使用Tween的Stop相關接口即可。

3: Tween的源碼實現

打開cocos引擎源碼actions/tween.js, 你會發現Tween其實是基於Cocos 的Action系統來實現的, Tween容器對象里面放的是一個一個的TweenAction, 這樣Tween實際上是Action系統來實現的。TweenAction是Tween編寫的一個Action, 這個Action繼承自 cc.ActionInterval, 在update里面來根據進度修改Target對應的屬性。還有一些函數調用的Tween,其實就是之前的Action里面的cc.callFunc, 如圖所示:

所以看完這些以后,相信你對Tween將會有一個詳細的了解了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM