您好,登錄后才能下訂單哦!
Action動(dòng)作
1.Action類是動(dòng)作命令,我們創(chuàng)建action,然后節(jié)點(diǎn)運(yùn)行action就能夠執(zhí)行Action的動(dòng)作
2.Action分為兩類;
(1)即時(shí)動(dòng)作: 瞬時(shí)就完成 ActionInstant
(2)時(shí)間間隔動(dòng)作:要一段時(shí)間才能完成ActionIntervial
3.runAction:節(jié)點(diǎn)運(yùn)行這個(gè)action動(dòng)作.
5.以下是常用action,TO和BY的區(qū)別是:
TO是目標(biāo). BY是變化.
6.cc.MoveTo cc.MoveTo
MoveTo:移動(dòng)到指定的坐標(biāo),移動(dòng)到目標(biāo)位置。
MoveBy:分別移動(dòng)多少. 移動(dòng)指定的距離.
返回的都是一個(gè)ActionIntervial時(shí)間間隔動(dòng)作
//第一個(gè)參數(shù)就是多久執(zhí)行 //第二個(gè)參數(shù)可以是一個(gè)數(shù),那么他第三個(gè)參數(shù)就是y //如果他是一個(gè)二維向量 那么不需要第三個(gè)參數(shù)。 //這樣也是可以的 cc.moveTo(3,x,y) var mto = cc.moveTo(3,cc,p(100,100)); this.node.runAction(mto);
7.rotateTo和rotateBy
rotateTo之后他的rotate屬性就是170,
因?yàn)樗囊馑季褪切D(zhuǎn)到170度,耗時(shí)2秒鐘.
//旋轉(zhuǎn)到170度 var rto = cc.rotateTo(2,170); this.node.runAction(rto);
rotateBy旋轉(zhuǎn)變化多少度
//在原來的基礎(chǔ)上變化75度,可正可負(fù) var rby = cc.rotateBy(1,75); this.node.runAction(rto);
9.scaleTo和scaleBy 縮放
按節(jié)點(diǎn)的大小縮放指定的倍數(shù)
放大或縮小到某一比例
這里會(huì)發(fā)生由大大小的動(dòng)作:因?yàn)槟惝?dāng)前是2,我要縮放到1.1
所以他會(huì)縮小.
this.node.scale = 2; var sto = cc.scaleTo(1,1.1); this.node.runAction(sto);
按指定的倍數(shù)縮放節(jié)點(diǎn)大小
所就是說按當(dāng)前的scale來乘以指定的倍數(shù)
如果說當(dāng)前scale是1 那就是1.1*scale
比如你的scale是2 那就是縮放2.2倍
這里會(huì)發(fā)生放大的動(dòng)畫,因?yàn)樗?的1.1倍,就是2.2倍縮放.
this.node.scale = 2; var sby = cc.scaleBy(1,1.1); this.node.runAction(sby);
10.fadeOut淡入,fadeIn淡出 原理就是改變透明度;
fadeTo漸變到指定的透明度
比如一個(gè)游戲人物死亡了,過一會(huì)他的尸體就慢慢消失.
淡入
//先讓透明度為0 this.node.opacity = 0; var fin = cc.fadeIn(2); this.node.runAction(fin);
淡出 就是透明度為0 實(shí)際上這個(gè)物體還是在的
var fout = cc.fadeOut(2); this.node.runAction(fout);
指定透明度
var fout = cc.fadeTo(1,128); this.node.runAction(fout);
11.callFunc 執(zhí)行回調(diào)函數(shù)
這里會(huì)瞬間執(zhí)行這個(gè)函數(shù)動(dòng)作.
var func = cc.callFunc(function(){ console.log("call func actin!!!"); },this); this.node.runAction(func);
12.sequence 順序執(zhí)行動(dòng)作,創(chuàng)建的動(dòng)作將按順序依次運(yùn)行
比如說我移動(dòng)一個(gè)物體之后,又要隱藏這個(gè)物體.
這時(shí)候就有多個(gè)action,這個(gè)相當(dāng)于動(dòng)作數(shù)組,依次執(zhí)行
var ac1 = cc.moveTo(1,1,100); var ac2 = cc.fadeOut(0.5); var seq = cc.sequence(ac1,ac2); this.node.runAction(seq);
這時(shí)候回調(diào)函數(shù)在這里的作用就有用了,比如角色死亡漸漸
消失之后,透明度為0,但是物體還在,這時(shí)候就要用回調(diào)函數(shù)
來刪除這個(gè)節(jié)點(diǎn),或者做一些其他的內(nèi)容.
var ac1 = cc.moveTo(1,1,100); var ac2 = cc.fadeOut(0.5); var cfunc = cc.callFunc(function(){ console.log("我是最后一個(gè)動(dòng)作"); },this); //將動(dòng)作添加到隊(duì)列 var seq = cc.sequence(ac1,ac2,cfunc); this.node.runAction(seq);
13.一個(gè)節(jié)點(diǎn)可以同時(shí)運(yùn)行多個(gè)action,
比如一邊移動(dòng),一邊慢慢隱藏
var ac1 = cc.moveTo(2,1,100); var ac2 = cc.fadeOut(0.5); this.node.runAction(ac1); this.node.runAction(ac2);
14.重復(fù)執(zhí)行一個(gè)動(dòng)作 cc.repeat
參數(shù)1是重復(fù)的動(dòng)作,參數(shù)2是重復(fù)的次數(shù)
比如說我要他放大縮小然后重復(fù)執(zhí)行
var s1 = cc.scaleTo(0.8,1.1); var s2 = cc.scaleTo(0.8,0.8); var seq = cc.sequence([s1,s2]); var rep = cc.repeat(seq,4); this.node.runAction(rep);
15.永遠(yuǎn)重復(fù)執(zhí)行一個(gè)動(dòng)作 cc.repeatForever()
var s1 = cc.scaleTo(0.8,1.1); var s2 = cc.scaleTo(0.8,0.8); var seq = cc.sequence([s1,s2]); var rep = cc.repeatForever(seq); this.node.runAction(rep);
16.緩沖機(jī)制,緩動(dòng)動(dòng)作 easing
他和動(dòng)作執(zhí)行的時(shí)間是一致的.
回彈的效果,比如一個(gè)窗口打開,彈很大,然后又彈回一點(diǎn)
這些可以在API文檔里找到.
測試一個(gè)常用的,一個(gè)界面飛出去彈出來.
cc.easeBackOut 快速移動(dòng)超出目標(biāo),然后慢慢回到目標(biāo)
var m = cc.moveTo(1,300,0).easing(cc.easeBackOut()); this.node.runAction(m);
17.stopAction停止運(yùn)行指定的動(dòng)作
var m = cc.rotateBy(3,360).easing(cc.easeCubicActionOut()); var rf = cc.repeatForever(m); this.node.runAction(rf); this.node.stopAction(rf);
18.stopAllActions停止運(yùn)行所有動(dòng)作
var m = cc.rotateBy(3,360).easing(cc.easeCubicActionOut()); var rf = cc.repeatForever(m); this.node.runAction(rf); this.node.stopAllActions();
19.延時(shí) cc.delayTime
比如我們有一個(gè)特效出來了,讓他3秒后刪除
//延時(shí)3秒鐘 var delay = cc.delayTime(3); var fout = cc.fadeOut(0.5); var end_func = cc.callFunc(function(){ console.log("我消失啦"); }.bind(this)); var seq = cc.sequence(delay,fout,end_func); this.node.runAction(seq);
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。