2011-06-27 67 views
2

我試圖與Cocos2D中使用CCRipple 3D這樣的:我該如何緩慢停止CCActions?

-(void) addNewSpriteWithCoords:(CGPoint)p 
    { 
     id rippleAction = [CCRipple3D actionWithPosition:CGPointMake(p.x,p.y) radius:200 waves:10 amplitude:50 grid:ccg(32,24) duration:10]; 
     [self runAction:[CCSequence actions:rippleAction, [CCStopGrid action], nil]]; 
    } 

(其中PX,PY和對應於每一個觸摸的座標)

但是,當效果是在它突然停下來,我不知道如何改變它? (我知道CCStopGrid停止網格中的動作,但我沒有更多的線索)

任何人都知道如何讓效果停止順利?

非常感謝。

+1

提示:如果其他人發佈一個正確的答案,你應該接受它。如果您有正確答案的其他信息或備註,您應該編輯您的問題,而不是爲自己的問題添加答案。 – phlebotinum

+1

如果沒有正確的答案,並且你自己找到了解決方案,那麼添加(並接受)你自己的答案當然是一件好事:) – phlebotinum

+0

是的,我做到了,遲到了,但我做到了。事實上,我已經投票了SoulOutActivist的答案,加上我發現我自己的解決方案,不太準確,但工程:D –

回答

1

是的,那工作賣完了活動家(對不起,這麼晚回答你)!我做的是:

-(void) addNewSpriteWithCoords:(CGPoint)p 
{   

id rippleAction = [CCRipple3D actionWithPosition:CGPointMake(p.x,p.y) radius:150 waves:1 amplitude:50 grid:ccg(50,50) duration:0.9]; 
id rippleAction2 = [CCRipple3D actionWithPosition:CGPointMake(p.x,p.y) radius:150 waves:1 amplitude:25 grid:ccg(50,50) duration:0.8]; 

id rippleAction5 = [CCRipple3D actionWithPosition:CGPointMake(p.x,p.y) radius:150 waves:1 amplitude:5 grid:ccg(50,50) duration:1.1]; 
[fondo runAction:[CCSequence actions:rippleAction, rippleAction2, rippleAction5, [CCStopGrid action], nil]]; 
    } 
+0

你如何改變上述速度 –

1

裹在CCSpeed的CCSequence:

CCSequence* sequence = // action bits 
CCSpeed* speed = [CCSpeed actionWithAction:sequence speed:1.0f]; 

保存速度,例如在一個類變量,然後用另一個功能,比如標準更新的方法來修改速度,只要你喜歡使用setSpeed:

1

您可以使用衆多「緩解」操作之一來平滑縮放另一個操作所需的時間。

當然也有API文檔(這裏僅舉兩個例子,大約有30的變化),但許多變化都以不同的速度基本上變化,前進,反轉和它們的組合。

相關問題