我请求在一个购物应用程序中制作一个fidget微调器动画,这意味着在单击buy之前给用户一个“感觉”,因此它的aUIImageView
需要动画。我添加了一个自定义的单触式手势识别器,允许用户旋转/旋转视图,但是图像现在只在用户放开时旋转和停止,什么是保持“速度”的最佳方式?想一想SpriteKit会怎么样?
最佳答案
我留下了一个关于角速度和动量的评论,但是想回答这个问题,所以下一个需要帮助的人知道怎么做。
角速度是旋转的速度。你要做的是施加一个角脉冲,开始旋转。质量和角动量会随着时间的推移而减慢,就像fidget旋转器后面的实际物理一样。
将其添加到touchesBegan
类中的fidgetSpinner
方法
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)
}
}