Cocos2d和grid3d - 操作完成后重置效果

时间:2012-12-01 12:12:53

标签: cocos2d-iphone effects

我只想弄清楚这个,我有一个grid3d CCRipple3D动作/效果,它应该出现在哪里。除非它完成(1秒后),它会“暂停”效果并将其留在原位。我想要的只是一个波纹然后就消失了。这是我的代码:

for( UITouch *touch in touches ) {

    CGPoint location = [touch locationInView: [touch view]];

    location = [[CCDirector sharedDirector] convertToGL: location];

    id effect = [CCRipple3D actionWithPosition:location radius:180 waves:10 amplitude:20 grid:ccg(60, 60) duration:1]; 

    [self runAction:effect];
}

但是这会在那个地方留下一层扭曲。我需要它涟漪1秒钟然后消失。

提前致谢!

2 个答案:

答案 0 :(得分:1)

id effect = [CCRipple3D actionWithPosition:location radius:180 waves:10 amplitude:20 grid:ccg(60, 60) duration:1];
[someNode runAction:[CCSequence actions:effect,[CCStopGrid action], nil]];

如果是旧版本的cocos2d,请使用[StopGrid操作]而不是[CCStopGrid操作]。

很可能OP早就找到了答案。但仍然发布解决方案,以便任何人都能找到到达这里的答案(就像我一样)。

答案 1 :(得分:0)

我在使用cocos2d-js 3.0时也遇到了这个问题。感谢Mesbah的回答,我得到了这个:

    var action = cc.shaky3D(3, cc.size(15, 10), 50, false);
    gameBg.runAction( cc.sequence(action, cc.stopGrid()) );