【问题标题】:Scaling a node based on position根据位置缩放节点
【发布时间】:2016-01-05 14:03:02
【问题描述】:

我想知道是否有办法根据精灵节点的位置来缩放它?

因此,例如,当一个角色的 y 位置增加时,您希望他看起来更小,就像他离您越来越远一样。当他的 y 位置减小时,您希望他在离您更近时显得更大。

let swipeUp = UISwipeGestureRecognizer()

override func didMoveToView(view: SKView) {

    swipeUp.addTarget(self, action: "swipedUp")
    swipeUp.direction = .Up
    self.view!.addGestureRecognizer(swipeUp)

    swipeDown.addTarget(self, action: "swipedDown")
    swipeUp.direction = .Down
    self.view!.addGestureRecognizer(swipeDown)

    addSprite()
}

func swipedUp(){


  let amountToMove: CGFloat = 100
  let move: SKAction = SKAction.moveByX(0, y: amountToMove, duration: 0.1)

  character.runAction(move)

}

func swipedDown(){

  let amountToMove: CGFloat = 100
  let move: SKAction = SKAction.moveByX(0, y: -amountToMove, duration: 0.1)

  character.runAction(move)

}

func addSprite(){
     let sprite = SKSpriteNode(imageNamed: "testImage")
     sprite.position = CGPoint(x: xPos, y: yPos)
}

【问题讨论】:

  • 您可以使用:SKAction.scaleYTo,或您想要的任何缩放操作。

标签: swift sprite-kit swift2


【解决方案1】:

覆盖精灵位置属性并在其中设置比例因子。这是一个非常基本的示例,您需要根据 y 确定实际的比例因子。

override var position{
    didSet{
      self.setScale((screen.height - y) / (screen.height / 2))
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2016-09-12
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多