Размахивая стрелкой с разной скоростью - PullRequest
0 голосов
/ 20 октября 2018

Как сделать поворот стрелки, как в этом видео ?

До сих пор я мог вращать свой узел назад и вперед, как в этом видео , используяследующий код в 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 Ответ

0 голосов
/ 21 октября 2018

К счастью, ответ на самом деле встроен в SKAction.

Просто добавьте их после создания действий:

rotateUp.timingMode = .easeInEaseOut
rotateDown.timingMode = .easeInEaseOut

Теперь вы получите эффект, который я искал!:)

...