【问题标题】:SKAction incorrect duration appearSKAction 出现不正确的持续时间
【发布时间】:2015-05-11 05:51:14
【问题描述】:

我有一个 SKSpriteNode 可以在游戏中放大和缩小。每次用户点击屏幕时,都会运行以下代码:

[self.sprite removeAllActions];
[self.sprite setScale:1];

SKAction *action = [SKAction scaleBy:scale duration:4];
[self.sprite runAction:action withKey:@"blowup"];

在第一次点击时,它以 4 秒的正常持续时间运行,但是在第二次和所有进一步的点击中,SKAction 以 10 倍的速度运行,这是非常出乎意料的,因为唯一的 SKAction 是在精灵上调用的,没有使用其他持续时间。

有什么想法吗?提前致谢

编辑:

将我的代码更改为 scaleTo 而不是 scaleBy

但是现在我发现,如果用户在 SKAction 动画完成后点击,则会播放预期的动画时间,但如果用户在动画期间点击并尝试停止它,则会发生超快动画。

【问题讨论】:

    标签: ios ios8 sprite-kit skspritenode skaction


    【解决方案1】:

    每次触摸精灵时,您都会增加比例。

    假设你缩放了 4,下次点击你的精灵缩放 16,第三次缩放 64。精灵会非常快速地增长!您可能需要考虑ScaleTo 而不是ScaleBy

    取决于你的目标..

    【讨论】:

    • 忘记输入我每次在精灵上运行 setScale:1 方法的代码(见编辑)
    • 它对我来说工作得很好......我快速做了一个快速演示,要我发布吗?如果您要删除所有动作并将比例设置回 1,它应该重置动画。你的比例变量怎么了?有变化吗?
    • 将我的代码配置为scaleTo方法后,我发现用户在SKAction动画完成后点击,然后播放预期的动画时间,但如果用户在动画期间点击并尝试停止然后超快的动画就会发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2017-12-14
    相关资源
    最近更新 更多