这是我第三次尝试解决runAction延迟完成问题。Sprite Kit runAction延迟,怪异的bug?
Iv'e做了一些测试,并得到了这么多。我希望有人能告诉我是否有某种设置或其他因素造成这种延迟。
我开始了一个新的精灵套件项目,并添加了这个。它效果很好。平稳的运动。
但是,当我添加一个“英雄”节点和这个代码到我现有的项目,它停止了一个毫秒之间的行动和完成。
有没有人知道为什么?
-(void)loopTest {
SKAction *move = [SKAction moveTo:CGPointMake(hero.position.x+32, hero.position.y) duration:0.7];
[hero runAction:move completion:^{
[self loopTest];
}];
}
哦,我明白了。由于完成块在评估完帧后才运行,下一个操作将不会运行,直到下一帧。因此,您有一个节点停止的1帧延迟。尝试使用runBlock操作而不是完成块。 – LearnCocos2D 2014-10-21 09:37:27
loopTest从didmovetoview调用一次,每次移动英雄一点。当动作结束时,再次调用loopTest并再次移动该英雄(仅用于测试)。毫秒不是一个精确的测量结果,但paus清晰可见,并且不会产生平滑的运动。 – 2014-10-21 09:39:07
我更新了我的评论,刷新了浏览器中的页面。 ;) – LearnCocos2D 2014-10-21 10:08:39