2009-08-17 104 views
1

試圖玩弄Cocos2d效果並創建方法來顯示和停止Liquid動作。然而,當應用效果時,我的應用程序從60fps下降到30fps,但當調用預定的停止動作時,fps不再增加。Cocos2D iPhone效果

我原本以爲,雖然動作已經完成,但效果仍然呈現,但通過閱讀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]; 
} 


乾杯,
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

只是一個猜測,但由於該項目將仍然有變換設置爲液體,它仍然在試圖對其做後應用更復雜的變換,則需要。在開始之前保存你的變換,然後當它停止設置它。你可以嘗試將它設置爲零。