2009-08-17 4 views
1

пытается играть с эффектами Cocos2d и создавать методы для отображения и остановки действия Liquid. Однако мое приложение падает с 60 кадров в секунду до 30 кадров в секунду, когда эффект применяется, но fps не увеличивается снова, когда вызывается запланированное действие остановки.Cocos2D iPhone Effect

Первоначально я думал, что пока действие выполнено, эффект все еще отображается, но после прочтения EffectsTest.h/.m в Cocos2D 0.8 zip я не могу найти ссылку на то, как это достигается. Может ли кто-нибудь пролить свет на эту проблему?

// 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]; 
} 


Cheers,
AntonMills

ответ

0

Просто небольшой совет здесь я знаю, что это было предложено лет назад, но кто-то еще может прийти сюда код немного избыточна, вот как это сделать:

// 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]; 
} 

к тому, что код совершенный

0

Только предположение, но так как этот пункт будет еще преобразование, установить в жидкости, что он все еще пытается применить более сложные преобразования, то необходимо после его сделали. Сэкономьте свое преобразование перед запуском, а затем, когда он перестанет его устанавливать. Вы можете попробовать просто установить его на ноль.