2012-06-22 48 views
0

我覺得做一個簡單的動畫,會很容易,但正在小時,我不是越來越近,甚至有預期的效果...iPhone上的動作補間效果(如閃光燈),也許使用cocos 2d?

我需要模擬一個簡單的Flash動畫補間像使用Xcode的iPhone/iPad版

這是預期的效果:http://www.swfcabin.com/open/1340330187

我已經嘗試過建立一個定時器將X位置和它好好嘗試一下得到相同的效果,我cooworkers建議我科科斯2D做到這一點使用的行爲和精靈,這可能會很好,雖然我不喜歡第三方框架,但是如果有一種方法可以對cocos做同樣的事情,我會確定的你用它。

沒有任何人有任何建議,我覺得如果沒有煩惱,你可能比我想象的

感謝所有

回答

1

簡單,你將不得不這樣做insinge OpenGL的視圖,它真的很簡單。要顯示一些信息,您需要CCLabel類。要改變它的位置,您需要CCMoveTo/CCMoveBy操作,要更改不透明度,您需要CCFadeTo/CCFadeIn/CCFadeOut操作,以便延遲您需要的CCDelayTime。爲了使它們一起工作,你需要CCSpawn和CCSequence。 CCSpawn將同時運行多個動作(例如淡入和從右向中心移動),CCSequence將逐個運行幾個動作(順序淡入+移動到中央,延遲同一時間,順序淡出+從中心向左移動)。那麼你只應該調度方法,它會創建標籤並對它們執行操作。在代碼它會像

讓你想開始動畫

[self schedule:@selector(runNextMessage) interval:ANIMATION_TIME]; 

任何地方定義整個動畫的時間

#define ANIMATION_TIME 4.f 

時間表方法,它會調用runNextMessage方法每ANIMATION_TIME

- (void) runNextMesage 
{ 
    NSString* message = //get next message 

    CCLabelTTF* label = [CCLabelTTF labelWithString:message 
             dimensions:desiredDimensionsOfTheLabel 
              alignment:UITextAlignmentLeft 
             lineBreakMode:UILineBreakModeWordWrap 
              fontName:@"Arial" 
              fontSize:20.f]; 
    CGSize winSize = [[CCDirector sharedDirector] winSize]; 
    // place the label out the right border 
    [label setPosition: ccp(winSize.width + label.contentSize.width, winSize.height/2)]; 

    // adding it to the screen 
    [self addChild:label]; 

    ccTime spawnTime = ANIMATION_TIME/3; 
    // create actions to run 
    id appearSpawn = [CCAction actionOne:[CCMoveTo actionWithDuration:spawnTime] 
            two:[CCFadeIn actionWithDuration:spawnTime]]; 

    // create show action and disappear action 

    // create result sequence 
    id sequence = [CCSequence actions: appearSpawn, showAction, disappearAction, nil]; 
    [label runAction: sequence]; 
}