【问题标题】:Swing arrow at a varying speed以不同的速度摆动箭头
【发布时间】:2019-03-25 08:19:56
【问题描述】:

我怎样才能使箭头像this video 一样摆动?

到目前为止,我可以像在this video 中一样使用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))

但是,我希望箭头在靠近边缘时显示为“减速”。我怎样才能做到这一点?


如果您有任何问题,请提出!

【问题讨论】:

    标签: ios swift sprite-kit skspritenode skaction


    【解决方案1】:

    幸运的是,答案实际上内置于SKAction

    只需在创建操作后添加这些:

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

    现在你得到了我想要的效果! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多