我正在尝试在加载游戏场景后启动物理对象,类似于https://www.makegameswith.us/tutorials/getting-started-with-spritebuilder/creating-two-levels/
我的代码是这样的
- (void)didLoadFromCCB {
// tell this scene to accept touches
self.userInteractionEnabled = TRUE;
[self launchObject];
}
- (void) launchObject {
CCNode* object = [CCBReader load:@"Object"];
// Apply force to it
}
问题是如果我在启动对象或launchObject中的第一行之前在didLoadFromCCB中添加了一个sleep方法,游戏场景本身只在那么多秒之后加载(比如点击播放后)并立即启动,但我想要加载游戏场景,并在n秒后启动物理对象。
我可以使用
轻松解决此问题- (void)update:(CCTime)delta
通过设置一些启动条件,但问题是,这是正确的方法。我不想让更新方法复杂化以容纳多个if / else内容,并将其用于超出其预期目的,特别是如果还有其他最佳方法。
我在这个论坛上发布了不同的解决方案,但对我的案例没有帮助。