【问题标题】:Rotate Sprite on touch swift 3 IOS在触摸swift 3 IOS上旋转Sprite
【发布时间】:2017-05-29 07:32:09
【问题描述】:

我正在尝试复制飞扬的小鸟游戏作为一种练习。 当你触摸屏幕时玩飞扬的小鸟时,小鸟会稍微向上倾斜(然后向上),然后当你松开它时,它会向下旋转并下降。

我已经设置了所有物理设置,我只需要知道如何将小鸟向上旋转(同时保持拍动的翅膀动画),然后在您松开手时将其再次转为面朝下。

我确定容易吗?...

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    在更新帧方法中放置

    -Swift 3-

    let value = Bird.physicsBody!.velocity.dy * ( Bird.physicsBody!.velocity.dy < 0 ? 0.005 : 0.001 )
    Bird.zRotation = min( max(-0.5 //determines how much rotation when falling down, value), 1 //determines how much when jumping up )
    

    只要施加脉冲,鸟就会旋转

    【讨论】:

      【解决方案2】:

      在不知道SpriteKit 的情况下,我会考虑像在这个问题的第二个答案中那样旋转您的坐标系。 @ToddFincannon 建议保存图形状态、平移/旋转坐标系(最有可能到精灵的中心)、绘制和恢复。大致复制他的答案,这将转化为

      let c = UIGraphicsGetCurrentContext()!
      c.saveGState()
      c.translateBy(x: sprite.midX, y: midY)
      c.rotate(by: angle * .pi / 180)
      // Draw your sprite at 0, 0 (it is already translated)
      c.restoreGState()
      

      为了向上旋转,您可能需要一个负角。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多