Cocos2D:使用自定义间隔运行父更新方法

时间:2013-01-12 14:52:00

标签: cocos2d-iphone

我试图为我的游戏组合一个小级系统。我想要一个更新方法来处理我的游戏主要逻辑。所以我在父类.h文件中声明了一个方法:

Level.h:

-(void)gameLogicTick:(ccTime)dt;

然后我在Level.m中执行,不要认为确切的代码是相关的。

我创建了一个名为Forest的Level子类。在林初始化方法中,我想指定 gameLogicTick 的间隔,我这样做了:

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

这使得我的游戏崩溃(5秒后)没有调试消息。

那么如何创建一个schedule update-method,我可以在其中指定当前类的间隔?

2 个答案:

答案 0 :(得分:0)

不要尝试使用父类gameLogicTick:方法。让那一个人全速完成它的事情。在您的Forest.m中,只需致电

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

然后确保您的Forest实施中有适当的update:(ccTime) delta。只是不要将它命名为与父类的方法相同,否则你不会有任何问题。

答案 1 :(得分:0)

你做的还可以。也许Forest对象被解除分配(例如,因为它从未作为子节点添加到父节点),并且下次CCScheduler更新已调度的方法时,它将尝试在已发布的实例上运行您的方法。

您应该在Xcode中启用全局异常断点以获取更多崩溃信息以及发生崩溃的确切行。