Cocoa學(xué)習(xí)筆記 Cocos2d 各種動(dòng)作介紹 (上)
Cocoa學(xué)習(xí)筆記 Cocos2d 各種動(dòng)作是本文呀介紹的內(nèi)容,本篇文章分為上下兩篇,請(qǐng)友們不要忘了下篇內(nèi)容,請(qǐng)關(guān)注。我們來(lái)看內(nèi)容。
通常調(diào)用某個(gè)動(dòng)作的方法:
- // 創(chuàng)建動(dòng)作
- id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];
- // 使用動(dòng)作。(說(shuō)明:tamara 是一個(gè) CCSprite。)
- [tamara runAction: actionTo];
瞬時(shí)動(dòng)作
顧名思義。瞬時(shí)動(dòng)作就是不需要時(shí)間,馬上就完成的動(dòng)作。瞬時(shí)動(dòng)作的共同基類(lèi)是 InstantAction。
放置 – Place
效果類(lèi)似于 node.Position = ccp(x, y)。之所以作為一個(gè)動(dòng)作來(lái)實(shí)現(xiàn)是為了可以與其他動(dòng)作形成一個(gè)連續(xù)動(dòng)作。
示例:
- (void) OnPlaceMenue:(id) sender {
- CGSize s = [[CCDirector sharedDirector] winSize];
- CGPoint p = ccp(CCRANDOM_0_1() * s.width, CCRANDOM_0_1() * s.height);
- [sprite runAction:[CCPlace actionWithPosition:p]];
- }
隱藏 – Hide
效果類(lèi)似于 [node setVisible:NO].
示例:
- (void) OnHideMenue:(id) sender {
- [sprite runAction:[CCHide action]];
- }
顯示 – Show
效果類(lèi)似于 [node setVisible:YES].
示例:
- (void) OnShowMenue:(id) sender {
- [sprite runAction:[CCShow action]];
- }
可見(jiàn)切換 – ToggleVisibility 代碼如下:
- (void) OnToggleMenue:(id) sender {
- [sprite runAction:[CCToggleVisibility action]];
- }
延時(shí)動(dòng)作
延時(shí)動(dòng)作就是動(dòng)作的完成需要一定時(shí)間。因此,actionWithDuration 是延時(shí)動(dòng)作執(zhí)行時(shí)的***個(gè)參數(shù),延時(shí)動(dòng)作的共同基類(lèi)是 CCIntervalAction。
函數(shù)的命名規(guī)則:
***To: 意味著運(yùn)動(dòng)到指定的位置。
***By:意味著運(yùn)動(dòng)到按照指定癿 x、y 增量的位置。(x、y 可以是負(fù)值)
移動(dòng)到 – CCMoveTo
移動(dòng)– CCMoveBy
跳躍到 – CCJumpTo
設(shè)置終點(diǎn)位置和跳躍癿高度和次數(shù)。
跳躍 – CCJumpBy
設(shè)置終點(diǎn)位置和跳躍癿高度和次數(shù)。
貝塞爾 – CCBezierBy
支持 3 次貝塞爾曲線:P0-起點(diǎn),P1-起點(diǎn)切線方向,P2-終點(diǎn)切線方向,P3-終點(diǎn)。
首先設(shè)置定 Bezier 參數(shù),然后執(zhí)行。
放大到 – CCScaleTo
設(shè)置放大倍數(shù),是浮點(diǎn)型。
放大 – CCScaleBy
旋轉(zhuǎn)到 – CCRotateTo
旋轉(zhuǎn) – CCRotateBy
閃爍 – CCBlink
設(shè)定閃爍次數(shù)
色調(diào)變化到 – CCTintTo
色調(diào)變換 – CCTintBy
變暗到 – CCFadeTo
由無(wú)變亮 – CCFadeIn
由亮變無(wú) – CCFadeOut
組合動(dòng)作
按照一定的次序?qū)⑸鲜龌緞?dòng)作組合起來(lái),形成連貫的一套組合動(dòng)作。組合動(dòng)作包括以 下幾類(lèi):
序列 – CCSequence
主要作用就是線序排列若干個(gè)動(dòng)作,然后按先后次序逐個(gè)執(zhí)行。
- (void) OnSequence:(id) sender {
- CGSize s = [[CCDirector sharedDirector] winSize];
- CGPoint p = ccp(s.width/2, 50);
- // 創(chuàng)建5個(gè)動(dòng)作
- id ac0 = [sprite runAction:[CCPlace actionWithPosition:p]];
- id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];
- id ac2 = [CCJumpTo actionWithDuration:2 position:ccp(150, 50) height:30 jumps:5];
- id ac3 = [CCBlink actionWithDuration:2 blinks:3];
- id ac4 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];
- //將 5 個(gè)動(dòng)作組合為一個(gè)序列,注意不要忘了用 nil 結(jié)尾。
- [sprite runAction:[CCSequence actions:ac0, ac1, ac2, ac3, ac4, ac0, nil]];
- }
同步 – Spawn Spawn
作用就是同時(shí)并列執(zhí)行若干個(gè)動(dòng)作,但要求動(dòng)作都必須是可以同時(shí)執(zhí)行的。比如:移動(dòng)式翻轉(zhuǎn)、變色、變大小等。
需要特別注意的是,同步執(zhí)行***的完成時(shí)間由基本動(dòng)作中用時(shí)***者決定。
- (void) OnSpawn:(id) sender {
- CGSize s = [[CCDirector sharedDirector] winSize];
- CGPoint p = ccp(s.width/2, 50);
- sprite.rotation = 0;
- [sprite setPosition:p];
- // 創(chuàng)建 4 個(gè)需要并行的動(dòng)作,確保動(dòng)作用時(shí)可組合。2 – 2 - (1+1)
- id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];
- id ac2 = [CCRotateTo actionWithDuration:2 angle:180];
- id ac3 = [CCScaleTo actionWithDuration:1 scale:4];
- id ac4 = [CCScaleBy actionWithDuration:1 scale:0.5];
- id seq = [CCSequence actions:ac3, ac4, nil];
- // 同步動(dòng)作和組合動(dòng)作以形成一個(gè)連續(xù)的新動(dòng)作。
- [sprite runAction:[CCSpawn actions:ac1, ac2, seq, nil]];
- }
小結(jié):關(guān)于Cocoa學(xué)習(xí)筆記 Cocos2d 各種動(dòng)作介紹 (上)的內(nèi)容介紹完了,希望本文對(duì)你有所幫助,請(qǐng)繼續(xù)關(guān)注 Cocoa學(xué)習(xí)筆記 Cocos2d 各種動(dòng)作介紹 (下)
【編輯推薦】