【问题标题】:Cocos2D iPhone EffectCocos2D iPhone 效果
【发布时间】:2009-08-17 15:56:33
【问题描述】:

尝试使用 Cocos2d 效果并创建方法来显示和停止 Liquid 动作。然而,当应用效果时,我的应用程序从 60fps 下降到 30fps,但在调用预定的停止操作时 fps 不会再次增加。

我最初认为虽然动作已经完成,但效果仍在渲染,但在阅读了 Cocos2D 0.8 zip 中的 EffectsTest.h/.m 后,我找不到任何关于如何实现的参考。谁能解释一下这个问题?

// effects
-(void)enableLiquidEffect
{
    id liquid = [Liquid actionWithWaves:6 amplitude:20 grid:ccg(15, 10) duration:3];

    [self schedule:@selector(disableLiquidEffect) interval:(3.0)];

    [self runAction:liquid];
}
-(void)disableLiquidEffect
{
    [self unschedule:@selector(disableLiquidEffect)];
    [self stopAllActions];
}


干杯,
安东米尔斯

【问题讨论】:

    标签: iphone cocos2d-iphone


    【解决方案1】:

    这里只是一个小提示,我知道这是几年前问过的,但仍然有人可能会来这里 代码有点大材小用,具体做法如下:

    // effects
    -(void)enableLiquidEffect
    {
        id liquid = [Liquid actionWithWaves:6 amplitude:20 grid:ccg(15, 10) duration:3];
        //No need to unschedule after 3 seconds since you already set duration-^ to 3 seconds.
        [self runAction:liquid];
    }
    -(void)disableLiquidEffect
    {
        [self stopAllActions];
    }
    

    除了代码很完美

    【讨论】:

      【解决方案2】:

      只是一个猜测,但由于该项目仍将转换设置为液体,因此它仍在尝试应用更复杂的转换,然后在完成后需要。在开始之前保存你的转换,然后在它停止时将其重新设置。您可以尝试将其设置为 nil。

      【讨论】:

        猜你喜欢
        • 2016-01-20
        • 1970-01-01
        • 1970-01-01
        • 2011-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多