最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Cocos Creator動作系統(tǒng)和緩動系統(tǒng)總結(jié)

2021-11-13 18:06 作者:unity小能手  | 我要投稿

動作系統(tǒng)就是可以在一定的時間內(nèi)實現(xiàn)位移、旋轉(zhuǎn)、縮放、跳動等各種動作。需要注意的是,動作系統(tǒng)跟Cocos creator編譯器的動畫系統(tǒng)不同,動作系統(tǒng)是面向程序員的API接口,而動作系統(tǒng)是通過編譯器來設(shè)計,它們服務(wù)于不同的使用場景,動作系統(tǒng)通常適合做一些簡單的位移、旋轉(zhuǎn)等動作,而動畫系統(tǒng)則相對要強大很多,可以對UI增加各種屬性來做到一些復(fù)雜的動畫。

一、 動作系統(tǒng)Action

Action是動作命令,先創(chuàng)建動作,然后就可以通過節(jié)點運行動作。

Action包括,改變位置、大小、旋轉(zhuǎn)等屬性;

Action分為兩大類:1.一段時間后完成 ActionIntervial 2. 瞬時完成 ActionInstant

// 創(chuàng)建一個移動的動作,在 2 秒內(nèi),移動到 x = 100,y = 100 的位置

let action = cc.moveTo(2, 100, 100)

// 執(zhí)行動作,所有的動作都需要一個目標(biāo)通過 runAction 去執(zhí)行它

node.runAction(action)

// 當(dāng)我們想中途停止一個目標(biāo)的運動

node.stopAction(action)

// 如果有多個目標(biāo)在運動的過程中,想停止所有的動作

node.stopAllActions()

以上就是實現(xiàn)了一個簡單的動作。

如果我們想實現(xiàn)更多的動作效果,也可以通過不同的接口來實現(xiàn)。

動作系統(tǒng)也分為 時間間隔動作 和 即時動作。

1. ?時間間隔動作ActionIntervial

時間間隔動作:就是在一定的時間內(nèi)完成指定的動作。

cc.moveTo(2, 100, 100) ? ? // 移動到目標(biāo)位置,也就是說,無論我們的想要移動的目標(biāo)處于什么位置,執(zhí)行這個動作后,都會在 2s 的時間內(nèi)移動到 x = 100,y = 100 的這個位置。參數(shù)可以是2 ~ 3個參數(shù),如果是兩個參數(shù),則表示在 y軸 的方向上沒有效果。

cc.moveBy(2, 100, 100) ? ? // 移動指定的距離,也就是說,無論我們的想要移動的目標(biāo)處于什么位置,執(zhí)行這個動作后,都會在 2s 的時間內(nèi)移動到距離上一個位置在 x 上增加 100 的距離,在 y 上增加 100 的距離,會產(chǎn)生疊加的效果。參數(shù)可以是2 ~ 3個參數(shù),如果是兩個參數(shù),則表示在 y軸 的方向上沒有效果。

cc.rotateTo(2, 1080 ,1080) ? ? // 旋轉(zhuǎn)到目標(biāo)角度,在平面圖上,參數(shù)為2 ~ 3個的效果是相同的,只有在三維效果才會不同。

cc.rotateBy(2, 1080, 1080) ? ? // 在兩秒內(nèi),旋轉(zhuǎn)到指定的角度, 效果也是疊加的

cc.scaleTo(2, 0.5, 0.5) ? ? ? ? ? ?// 在兩秒內(nèi),將節(jié)點的大小縮放到指定的倍數(shù)

cc.scaleBy(2, 1.2, 1.2) ? ? // 在兩秒內(nèi),按指定的倍數(shù)去縮放節(jié)點,同樣多次點擊,效果會累加。

cc.skewTo(1, 60, 60) ? ?// 在1 秒內(nèi),偏斜到目標(biāo)角度

cc.skewBy(1, 40, 40) ? ? // 在1秒內(nèi),偏斜指定的角度;多次點擊,數(shù)值會累加

cc.jumpTo(3, 200, 200, 50, 5) ? ? ? // 在3秒內(nèi),用跳動的方式移動到坐標(biāo)為(200, 200)的位置,每次跳躍的高度為50,跳躍5次。

cc.jumpBy(2, 100, 100, 50, 5) ? ? ? ? ?// 在2秒的時間內(nèi),用跳躍的方式指定的距離,(100, 100)會進行累加,每次跳躍的高度為50,跳躍次數(shù)為5次

cc.blink(3, 10) ? ? ?// 在3秒內(nèi),閃爍10次,這個是基于透明度的閃爍

cc.fadeTo(3, 100) ? ? ? ?// 在3秒內(nèi),修改透明度到100的值

cc.fadeIn(2) // 漸顯,參數(shù)為時間

cc.fadeOut(2) // 漸隱,參數(shù)也為時間

cc.tintTo(3, 0, 255, 0) ? // 在3秒內(nèi),修改顏色到指定值,后面的三個參數(shù)表示的是 rgb 的值

cc.tintBy(1, 100, 200, 100) // 在1秒內(nèi)按指定的增量(100, 200, 100)修改顏色,顏色會從 rgb(0, 0, 0) 開始增加

cc.delayTime(5) // 表示延遲指定的時間量,用作延遲效果

cc.reverseTime() // 用于反轉(zhuǎn)目標(biāo)動作的時間軸

2. ?即時動作ActionInstant

即時動作:立即發(fā)生的動作,沒有時間的間隔

cc.show() // 立即顯示

cc.hide() // 立即隱藏

cc.toggleVisibility() // 顯隱狀態(tài)的切換

cc.removeSelf() // 從父節(jié)點移除自身

cc.flipX() // 沿X軸翻轉(zhuǎn)

cc.flipY() // 沿Y軸翻轉(zhuǎn)

cc.place() // 放置在目標(biāo)位置,參數(shù)為X,Y的值

cc.callFunc() // 執(zhí)行一個回調(diào)函數(shù)

3. ?緩動動作Easing

緩動動作:目標(biāo)在運動的時間內(nèi),會調(diào)節(jié)不同階段的運動的速度。

有時候為了讓動作看起來比較優(yōu)雅,不那么呆板,

可以用cc.easeXXX加上緩動特效,有很多方法,可以查官方API,

在此就舉一個使用的例子:

var r = cc.rotateBy(2,360).easing(cc.easeCubicActionOut()); //按三次函數(shù)緩動退出

var rf = cc.repeatForever(r);

this.node.runAction(rf);

4. ?容器動作

通常我們在規(guī)劃動作時,不會是一種單一的動作,而是多種動作結(jié)合運動達到我們想要的一種效果。

cc.spawn // 同步執(zhí)行動作,也就是說,可以在相同的時間段內(nèi),執(zhí)行不同的動作達到同步的效果。比如說,在進行位移的同時,可以實現(xiàn)旋轉(zhuǎn)和縮放等動作。

cc.sequence // 順序執(zhí)行動作,即在不同的時間段執(zhí)行不同的動作

cc.repeat // 重復(fù)執(zhí)行動作,代入執(zhí)行動作的參數(shù)后,要加一個重復(fù)的次數(shù)

例如:

cc.repeat(cc.sequence(cc.moveTo(1, 400, 200), cc.moveTo(1, -400, -200),cc.delayTime(0.5), cc.tintBy(2, 10, 50, 10), cc.jumpTo(3, 400, -100, 100, 20),cc.flipY(true)), 10)

重復(fù)10次執(zhí)行的動作

?cc.repeatForever ? ? // 永久重復(fù)動作

?cc.speed // ?修改動作速率

例如:

cc.speed(cc.sequence(cc.moveTo(5, 400, 200), cc.moveTo(5, -400, -200)), ?x1)

x1 的數(shù)值越大,則動作的速率越快;數(shù)值為負(fù)值時,則不改變速率。

二、 緩動系統(tǒng)cc.tween

從Cocos Creator v2.0.9,增加了一個新的緩動動作cc.tween。

Tween 提供了一個簡單靈活的方法來創(chuàng)建 action。 相對于 Cocos 傳統(tǒng)的 cc.Action,cc.Tween 在創(chuàng)建動畫上要靈活非常多:

支持以鏈?zhǔn)浇Y(jié)構(gòu)的方式創(chuàng)建一個動畫序列。

支持對任意對象的任意屬性進行緩動,不再局限于節(jié)點上的屬性,而 cc.Action 添加一個屬性的支持時還需要添加一個新的 action 類型。

支持與 cc.Action 混用;

支持設(shè)置 Easing 或者 progress 函數(shù)。

cc.tween有兩種主要的設(shè)置方式:to 改變到某個值、by 變化值。

//cc.tween可以同時設(shè)置多個屬性

//cc.tween 在調(diào)用 start 時會將之前生成的 action 隊列重新組合生成一個 cc.sequence 隊列,依次執(zhí)行。

cc.tween(this.node)

//to,在第一秒的時候放大為2倍,位置為(100,100),角度變化到120

.to(1,{scale:2,position:cc.v2(100,100),rotation:120})

//by,在第二秒時,縮放變化1.5倍,即最終放大為原始大小的3倍,位置變化了(100,100),即現(xiàn)在位置為(200,200)

.by(1,{scale:1.5,position:cc.v2(100,100)})

//在第三秒時縮放為原來的大小,位置設(shè)置為(0,0),然后加了一個緩動效果backOut

.to(1,{scale:1,position:cc.v2(0,0)},{easing:"backOut"})

.start();

從以上的例子可以看出來,cc.tween就是鏈?zhǔn)降囊恍蛄械腶pi,可以同時修改多個屬性,并且可以同時設(shè)置緩動效果

不僅如此,cc.tween還可以緩動任意對象的任意屬性,如

var obj = { a: 0 }

cc.tween(obj)

.to(1, { a: 100 })

.start()

更多詳細(xì)信息和使用說明,大家可以查看官網(wǎng)API:

https://docs.cocos.com/creator/api/zh/classes/Tween.html


Cocos Creator動作系統(tǒng)和緩動系統(tǒng)總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
大荔县| 永善县| 台中市| 廊坊市| 乐都县| 南岸区| 新和县| 罗田县| 邯郸市| 杂多县| 呼伦贝尔市| 封开县| 天峨县| 万载县| 南丰县| 苏州市| 花莲县| 韩城市| 清新县| 太原市| 新泰市| 丰镇市| 凌源市| 洛浦县| 留坝县| 东明县| 汾阳市| 若尔盖县| 江城| 大荔县| 思南县| 宕昌县| 荔浦县| 丽江市| 洪洞县| 宝应县| 扶余县| 富锦市| 平山县| 安康市| 西乡县|