【发布时间】:2016-04-14 08:18:11
【问题描述】:
我正在尝试为一个看起来像心跳的徽标制作动画(下图不是我的,只是为了让你明白):
我想要的是这个心跳从左向右绘制的动画(大约 1 秒)。
到目前为止我做了什么: - 我在 Sketch 3 下设计了 logo - 我创建了大约 30 个名为 image[i] 的不同图像,代表不同的步骤
我的代码:(在 init 方法中预加载纹理)
let logo = SKSpriteNode(imageNamed: "image1")
let logoAnimation: SKAction
var textures:[SKTexture] = []
for i in 1...25 {
textures.append(SKTexture(imageNamed: "image\(i)"))
}
logoAnimation = SKAction.animateWithTextures(textures,
timePerFrame: 0.1)
在 didMoveToView 内部:
logo.runAction(logoAnimation)
但动画看起来有点糟糕,滞后......
这是因为我添加了太多帧吗?还是不够?有没有更好的方法来制作这种动画?
感谢您的帮助
【问题讨论】:
-
如果它只是水平移动,我相信你可以尝试为
CGPath设置动画。使用大量图片并不是理想的解决方案。 -
@zcui93 : 是的,它只是水平移动,但是 CGPath 动画一条复杂的曲线(我的标志有弯曲的边缘,不像这个尖,忘了提)?
-
看看
UIBezierPath:) -
你是在使用 SpriteKit 来制作这个动画吗?如果它只是一个 UIKit 应用程序,还有一种方法可以在 UIImageView 中基于帧显示动画。
-
另外,如果您正在创建基于 SpriteKit 的应用程序,您应该在运行动画之前预加载纹理。
标签: ios swift animation sprite-kit