【问题标题】:Fidget Spinner Animation Swift?指尖陀螺动画 Swift?
【发布时间】:2017-05-17 12:22:19
【问题描述】:

我有一个请求,要在一个购物应用程序中制作一个指尖陀螺动画,它的目的是在点击购买之前给用户一种“感觉”,所以它需要一个 UIImageView 动画。我添加了一个自定义的单点触控手势识别器,允许用户旋转/旋转视图,但是图像现在只有在用户放开时才会旋转和停止,什么是保持“速度”的最佳方式?想一想 SpriteKit 会怎样做?

【问题讨论】:

  • 1.您应该使用 Core Animation,而不是 SpriteKit,2. 显示您尝试过的代码
  • 我没有使用 SpriteKit,我只是在想如何通过核心动画实现类似的效果。
  • 我已经回答了类似于您的问题here
  • 谢谢,我去看看。
  • 角速度和角动量是您要寻找的东西

标签: iphone swift uikit core-animation


【解决方案1】:

我留下了关于角速度和动量的评论,但想回答这个问题,以便下一个需要帮助的人知道如何做到这一点。

角速度是旋转的速度。你想要做的是施加一个角脉冲来开始旋转。随着时间的推移,质量和角动量会减慢它的速度,就像指尖陀螺背后的实际物理原理一样。

将此添加到fidgetSpinner 类中的touchesBegan 方法

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    fidgetSpinner.physicsBody?.applyAngularImpulse(1)
}

或将其添加到场景中,但检查触摸是否在内部和fidgetSpinner 上。

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first?.location(in: self)
    if fidgetSpinner?.contains(touch) {
        fidgetSpinner.physicsBody?.applyAngularImpulse(5)
    }
}

【讨论】:

  • 这适用于 SpriteKit,尽管我的问题是在没有 SpriteKit 的情况下实现了效果,尽管同样适用。
  • 你提到我的评论很有帮助,我的评论谈到了角速度和动量。两者都是 SpriteKit 中的概念,可能对未来寻求解决方案的人们有所帮助。
  • 我并没有声称它不会,而且您的评论当然很有帮助,角动量和角速度很有帮助,因为我在没有 SpriteKit 的情况下模拟了它们。因此,我也对您的回答投了赞成票。
猜你喜欢
  • 2017-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多