【问题标题】:How to implement update method which runs every frame如何实现每帧运行的更新方法
【发布时间】:2014-03-19 14:36:51
【问题描述】:

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

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

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

ccTime 呢?它只是重命名为CCTime?

【问题讨论】:

    标签: cocos2d-iphone


    【解决方案1】:

    是的,update 方法每帧运行一次。

    如果你想根据你的游戏状态有不同的行为,你可以简单地使用if或switch,特别是如果你的游戏很简单。

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

    这是我的选择器属性

    // 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);
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2012-10-02
      • 2013-02-20
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多