2014-10-20 60 views
0

这是我第三次尝试解决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]; 
}]; 
} 
+0

哦,我明白了。由于完成块在评估完帧后才运行,下一个操作将不会运行,直到下一帧。因此,您有一个节点停止的1帧延迟。尝试使用runBlock操作而不是完成块。 – LearnCocos2D 2014-10-21 09:37:27

+0

loopTest从didmovetoview调用一次,每次移动英雄一点。当动作结束时,再次调用loopTest并再次移动该英雄(仅用于测试)。毫秒不是一个精确的测量结果,但paus清晰可见,并且不会产生平滑的运动。 – 2014-10-21 09:39:07

+0

我更新了我的评论,刷新了浏览器中的页面。 ;) – LearnCocos2D 2014-10-21 10:08:39

回答

1

我重建应用程序从头开始(耗时...)但问题是presentScene ..

我用ResizeFill代替AspectFill。当我改变了它,没有更多的冻结问题。

+0

这似乎解决了这个问题。 SKAction runBlock让我的循环对象根本不显示。 – Siriss 2015-02-28 01:46:37