我正在尝试将我的项目更新为Cocos2d v3。我想知道如何实现每帧运行的更新方法。
这里https://www.makegameswith.us/gamernews/359/cocos2d-30-a-brief-transition-guide有信息表明不需要[self scheduleUpdate];
调用,只需要添加方法
- (void)update:(CCTime)delta {
...
}
我猜这个方法会在场景加载时运行每一帧。但是,如果我想在其他事件之后开始计划怎么办?按下按钮,例如,或开始,然后停止,然后再次重新运行?
那么ccTime呢?它只是简单地重命名为CCTime?
答案 0 :(得分:2)
是的,每帧都运行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);
}
}
我根据我的状态设置了不同的更新选择器。