2011-04-01 159 views
0

我只是有一個簡單的問題。我正在使用CCAnimation通過一系列圖像來製作足球螺旋。像這樣:動畫幫助!

// load the football's animation frames as textures and create a sprite frame 
frames = [[NSMutableArray alloc]initWithCapacity:3]; 
for (int i = 0; i < 10; i++) 
{ 
NSString* file = [NSString stringWithFormat:@"Football%i.png", i]; 
CCTexture2D* texture = [[CCTextureCache sharedTextureCache] addImage:file]; 
CGSize texSize = texture.contentSize; 
CGRect texRect = CGRectMake(0, 0, texSize.width, texSize.height); 
CCSpriteFrame* frame = [CCSpriteFrame frameWithTexture:texture rect:texRect]; 
[frames addObject:frame]; 
} 

// create an animation object from all the sprite animation frames 
CCAnimation* anim = [CCAnimation animationWithFrames:frames delay:0.03f]; 

// run the animation by using the CCAnimate action 
CCAnimate* animate = [CCAnimate actionWithAnimation:anim]; 
CCRepeatForever* repeat = [CCRepeatForever actionWithAction:animate]; 
[self runAction:repeat]; 

這個作品真的很好,但我想知道我會如何創建與此相同的陣列,這將使足球的樣子,慢慢停止轉動另一個動畫?我知道延遲:0.03f是控制球的旋轉速度,所以有一個如何使延遲緩慢地結束在0.0f或有另一種方式來做到這一點?

回答

0

您可以簡單地使用[animate setDuration:[animate getDuration] + 0.1]來增加延遲時間。而且你必須增加延遲時間以使足球看起來像旋轉得更慢。過了一段時間你只是停止停用動畫。如果你想使用動畫幀創建另一個動畫,你可以撥打[CCAnimation AnimationWithFrames:[anim getFrames]]

+0

我做了你說的,但它似乎並不像訪問動畫。我在這個代碼中創建了一個方法[anim setDelay:[anim delay] + 0.1];另一種方法是安排時間,並且全部都在運行,但足球仍在全速前進。我究竟做錯了什麼? – Stephen 2011-04-01 22:22:59

+0

對不起,我犯了錯誤,並更正了我的答案,你必須改變你的動畫實例的持續時間,而不是動畫的延遲,如果你想創建另一個動畫,你必須改變延遲,但在你的情況下,它似乎只改變持續時間就夠了(​​這次我自己測試了一下) – Ali1S232 2011-04-03 23:18:54