Размахивая стрелкой с разной скоростью
Как я могу сделать поворот стрелки, как в этом видео?
Пока что я могу вращать свой узел назад и вперед, как в этом видео, используя следующий код в didMove(to:)
в моем SKScene
:
// Ball
let ballNode = SKSpriteNode(imageNamed: "Ball")
let offsetFromCorner: CGFloat = 20
ballNode.position = CGPoint(x: frame.minX + ballNode.size.width / 2 + offsetFromCorner, y: frame.minY + ballNode.size.height / 2 + offsetFromCorner)
addChild(ballNode)
/* ... */
// Aim arrow
let aimArrowNode = SKSpriteNode(imageNamed: "AimArrow")
aimArrowNode.position.y += aimArrowNode.size.height / 2
ballNode.addChild(aimArrowNode)
ballNode.zRotation = -.pi / 18 * 8
let rotateUp = SKAction.rotate(toAngle: -.pi / 18, duration: 1)
let rotateDown = SKAction.rotate(toAngle: -.pi / 18 * 8, duration: 1)
let combinedActions = SKAction.sequence([rotateUp, rotateDown])
ballNode.run(SKAction.repeatForever(combinedActions))
Однако я хочу, чтобы стрелка "замедлялась" по мере приближения к краю. Как мне этого добиться?
Если у вас есть какие либо вопросы, пожалуйста спрашивайте!
1 ответ
Решение
К счастью, ответ на самом деле встроен в SKAction
,
Просто добавьте их после создания действий:
rotateUp.timingMode = .easeInEaseOut
rotateDown.timingMode = .easeInEaseOut
Теперь вы получаете эффект, который я искал!:)