簡單,你將不得不這樣做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];
}