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