0

我只是想弄清楚这一点,我有一个 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 秒钟然后消失。

提前致谢!

4

2 回答 2

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 action] 而不是 [CCStopGrid action]。

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

于 2013-04-03T12:48:39.740 回答
0

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

    var action = cc.shaky3D(3, cc.size(15, 10), 50, false);
    gameBg.runAction( cc.sequence(action, cc.stopGrid()) );
于 2014-10-19T13:16:10.917 回答