如何实现每帧运行的更新方法

时间:2014-03-19 14:36:52

标签: cocos2d-iphone

我正在尝试将我的项目更新为Cocos2d v3。我想知道如何实现每帧运行的更新方法。 这里https://www.makegameswith.us/gamernews/359/cocos2d-30-a-brief-transition-guide有信息表明不需要[self scheduleUpdate];调用,只需要添加方法

- (void)update:(CCTime)delta {
       ...
}

我猜这个方法会在场景加载时运行每一帧。但是,如果我想在其他事件之后开始计划怎么办?按下按钮,例如,或开始,然后停止,然后再次重新运行?

那么ccTime呢?它只是简单地重命名为CCTime?

1 个答案:

答案 0 :(得分:2)

是的,每帧都运行update方法。

如果您希望根据游戏状态采用不同的行为,则只需使用ifswitch,尤其是游戏很简单时。

如果它更复杂,您可以随时选择其他方法来运行。

这是我的选择器属性

// The update selector used depending on state
@property (nonatomic, assign) SEL updateSelector;

我的更新方法

- (void) update:(CCTime)delta
{
    if (self.updateSelector != nil)
    {
        IMP imp = [self methodForSelector:self.updateSelector];
        void (*func)(id, SEL) = (void *)imp;
        func(self, self.updateSelector);
    }
}

我根据我的状态设置了不同的更新选择器。