超级快消失的孩子

时间:2018-10-15 01:34:25

标签: ios swift sprite-kit

我正在尝试探索我们有意识地意识到的局限性……好吧,这听起来很自命不凡,基本上是什么东西必须让我们注意才能看到。但是我不能让我的孩子足够快地消失。

        valueX = SKLabelNode(fontNamed: "ArialRoundedMTBold")
        valueX.position = CGPoint(x: 0, y: 0)
        valueX.fontSize = 320
        valueX.text = String("H")
        valueX.fontColor = SKColor.white
        self.addChild(valueX)
        valueX.run(SKAction.scale(to: 0, duration: 0.00001))

这应该太快了,但似乎停留了一秒钟左右。我还可以使用其他一些技巧来使某些内容短暂出现吗?

1 个答案:

答案 0 :(得分:1)

我认为SK引擎不会在绘制之间缩放小精灵,即刷新屏幕,因此它必须以全尺寸显示在屏幕上至少1帧,即1/60秒。我怀疑SK引擎会计算出每帧可缩放的数量,因此在下一帧中可能已完全消失。例如。如果您想在1秒钟内缩放到25%,SK会认为自上次抽奖以来已经是0.01666667s,所以缩放的数量为1/60 x 75%= 1.25%。

如果操作的持续时间少于每帧的时间,则效果将为100%一帧,下一帧为0%。

如果您研究“人类对视觉的持之以恒”,您会发现很多信息(我没有深入了解自己),这也许就是为什么它似乎“停留大约一秒钟”而不是仅仅1 / 60s

作为最基本的检查,将精灵放在屏幕上didMoveTo(:view)的任意位置,然后将其移动到update()中的随机点,因此每次update()都会移动它运行(每1/60秒)。如果您看到它在闪烁,您将知道可以在1/60秒内看到某些东西,但是您将无法更快地完成。