我正在尝试将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会停止网格中的操作,但我没有更多的线索)
任何人都知道如何让效果顺利停止?
非常感谢你。
答案 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种变体)但是许多变体都是基本上不同的变化,具有不同的速度,前进,反转和组合。