2013-01-12 39 views
0

我正在嘗試爲我的遊戲放置一個小型系統。我想要一個更新方法來照顧我的遊戲主要邏輯。因此,我宣佈我的父類的.h文件的方法:Cocos2D:使用自定義時間間隔運行父級更新方法

Level.h:

-(void)gameLogicTick:(ccTime)dt; 

然後我做Level.m實施,鴕鳥政策想確切的代碼是相關的。

我創建了一個名爲Forest的Level的子類。在森林初始化方法,我想說明的間隔gameLogicTick,我這樣做:

[self schedule:@selector(gameLogicTick:)interval:5.0f]; 

這使得我的遊戲崩潰(5秒鐘後),沒有調試消息都沒有。

那麼我如何創建一個計劃更新方法,我可以在當前類中指定間隔?

回答

0

你做什麼都可以。也許Forest對象被取消分配(即,因爲它從未作爲子節點添加到父節點),並且下一次CCScheduler更新計劃的方法時,它將嘗試在已發佈的實例上運行您的方法。

您應該在Xcode中啓用全局異常斷點以獲取更多崩潰信息和發生崩潰的確切行。

+0

是的,我用它作爲我的更新方法沒有間隔。 '[self schedule:@selector(tick :)];'工作正常。 – marsrover

+0

更新:似乎問題是我在實現中調用的方法。 – marsrover

0

不要試圖搞亂父類gameLogicTick:方法。讓那個人全速完成任務。在你Forest.m,只需撥打

[self schedule:@selector(update:) interval: 5.0f]; 

然後確保你在你的森林實施適當update:(ccTime)三角洲。只是不要將它命名爲父類的方法,並且不會有任何問題。

+0

那麼,我必須在Level的每個子類中使用該方法,也許我必須找到另一種方法。 – marsrover