我怎样才能慢慢停止CCActions?

时间:2011-06-27 14:44:14

标签: objective-c cocos2d-iphone

我正在尝试将CCRipple 3D与Cocos2D一起使用,如下所示:

-(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]];
   }

(其中p.x和p.y对应于每次触摸的坐标。)

但是,当效果结束时,它突然停止,我不知道如何改变它? (我知道CCStopGrid会停止网格中的操作,但我没有更多的线索)

任何人都知道如何让效果顺利停止?

非常感谢你。

3 个答案:

答案 0 :(得分:1)

在CCSpeed中包装CCSequence:

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

保存速度,比如在类变量中,然后使用另一个函数,比如使用标准更新方法来修改速度,无论你喜欢使用setSpeed:

答案 1 :(得分:1)

是的,那就是Sold Out Activist(很抱歉你这么晚回答)!我做的是:

-(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]];
  }

答案 2 :(得分:1)

您可以使用众多“轻松”操作之一来平滑地缩放其他操作所需的时间。

当然还有API文档(这里只有两个示例,大约有30种变体)但是许多变体都是基本上不同的变化,具有不同的速度,前进,反转和组合。