如何为精灵图像提供涟漪动作

时间:2012-07-09 15:41:20

标签: iphone ios cocos2d-iphone

使用此系列显示我的图像的涟漪动作

  CCSprite * ghost = [CCSprite spriteWithFile:@"ghost.png"];
    [ghost setPosition:ccp(500,600)]; 

    CCRipple3D* ripple = [CCRipple3D actionWithPosition:ghost.position radius:ghost.contentSize.width  waves:4 amplitude:20 grid:ccg(40,40) duration:5.0];


    repeatt = [CCRepeatForever actionWithAction: ripple];
    [ghost runAction:repeatt ];

    [self addChild:ghost];

它为我的图像创建了一个涟漪动作,但我需要通过一个固定的路径移动这个图像。意思是,它需要通过x轴(0)移动到x(500)然后在获得x(500)之后需要从x(0)重复开始。但不要删除涟漪动作。

如何做到这一点 提前谢谢。

1 个答案:

答案 0 :(得分:1)

然后添加这两种方法 使用[self runMyAction:sprite];

- (void)moveActionComplete:(CCSprite*)sprite{
    sprite.position = ccp(0,600);
    [self runMyAction:sprite];
}

- (void)runMyAction:(CCSprite*)sprite{
    CCMoveTo *moveAction = [CCMoveTo actionWithDuration:30 position:ccp(500, 600)];
    CCCallFuncN *callbcak = [CCCallFuncN actionWithTarget:self selector:@selector(moveActionComplete:)];
    CCSequence *action = [CCSequence actions:moveAction, callbcak, nil];
    [sprite runAction:action];
}

此外,您的纹波持续时间非常慢,这就是为什么它看起来不起作用。 增加移动持续时间,然后你会看到它移动缓慢,并且可以看到涟漪效应 播放时间