出现SKAction不正确的持续时间

时间:2015-03-09 22:16:32

标签: ios ios8 sprite-kit skspritenode skaction

我有一个可在游戏中上下缩放的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动画完成后点击,则会播放预期的动画时间,但如果用户在动画期间点按并尝试停止动画,则会发生超快动画。

1 个答案:

答案 0 :(得分:0)

每次触摸精灵时都会将比例相乘。

所以让我们说你按4缩放,下次你点击你的精灵16,第三次64.精灵将会很快增长!您可能需要考虑ScaleTo而不是ScaleBy

取决于你的目标..