Sprite kit 该操作将以每秒60帧的速度调用还是不调用?
当我像这样设置SpriteKit操作时:Sprite kit 该操作将以每秒60帧的速度调用还是不调用?,sprite-kit,frame-rate,skaction,Sprite Kit,Frame Rate,Skaction,当我像这样设置SpriteKit操作时: action = [SKAction sequence:@[[SKAction performSelector:@selector(update) onTarget:self],[SKAction waitForDuration: 1.0f/60.0f]]]; 即使游戏仅以每秒30帧的速度运行,我的选择器也会以每秒60帧的速度被调用吗?或者无论游戏当前的帧速率是多少,它都会最大化吗?它应该与你的帧速率同步调用。SKScene参考说明,对于didEval
action = [SKAction sequence:@[[SKAction performSelector:@selector(update) onTarget:self],[SKAction waitForDuration: 1.0f/60.0f]]];
即使游戏仅以每秒30帧的速度运行,我的选择器也会以每秒60帧的速度被调用吗?或者无论游戏当前的帧速率是多少,它都会最大化吗?它应该与你的帧速率同步调用。SKScene参考说明,对于didEvaluateActions方法: 不要直接调用此方法;只要场景显示在视图中且未暂停,则每帧仅调用一次 这也符合SK编程指南中的更新循环图。Sprite Ykit没有始终以固定间隔运行的“固定”更新方法
如果waitForDuration未绑定到帧速率,这将违反记录在案的更新循环行为。是,无论帧速率如何,选择器每秒都将被调用60次。(这必须使用repeatForever调用)嗯,在SKAction中performSelector的工作方式有一个问题。如果我不将waitForDuration放在那里,应用程序将挂起在一个无限循环中,因此这表明操作不一定每帧调用一次。我甚至直接和苹果公司谈过这件事,他们说是的,我需要把延迟放进去,以避免无限循环。但是,我忘了问他们它的调用速率是多少,60fps还是实际帧速率。performSelector是一个“即时”动作,这意味着它没有持续时间来解释为什么循环会导致无限循环。