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

新手上路,请多包涵

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

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

我觉得加载场景时这个方法将会每帧运行。但是如果我想在其他一些事件中启动时间表应该怎么办呢?例如按下按钮,或者开始,然后停止,接着重新运行?

ccTime又怎么样呢? 它只是简单的重命名为CCTime?

原问题:How to implement update method which runs every frame

阅读 4.6k
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);
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进