Fak*_*n B 5 uigesturerecognizer ios uipinchgesturerecognizer sprite-kit swift
我正在尝试实现捏手势识别器来调整我的精灵节点的大小.我正在使用setScale(sender.scale)这个,但每次我抬起手指再次尝试捏,我的精灵重置为1.0比例,然后再缩放到捏.
我想要的是当我重新捏住屏幕时,精灵尺寸保持原样,并且随着我的捏缩而变得越来越大,因此我可以继续捏捏以使其变得像它一样大或小能够.这该怎么做?
这是我的代码.
var pizza = PizzaSprite()
override func didMove(to view: SKView) {
let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(self.handlePinchFrom(_:)))
pizza = PizzaSprite(size: self.frame.width * 0.25)
self.addChild(pizza)
self.view?.addGestureRecognizer(pinchGesture)
}
func handlePinchFrom(_ sender: UIPinchGestureRecognizer) {
if sender.state == .began {
} else if sender.state == .changed {
pizza.setScale(sender.scale)
} else if sender.state == .ended {
}
}
Run Code Online (Sandbox Code Playgroud)
这是PizzaSprite类
init() {
let texture = SKTexture(imageNamed: "demPizza")
super.init(texture: texture, color: UIColor.clear, size: texture.size())
}
init(size: CGFloat) {
let texture = SKTexture(imageNamed: "demPizza")
super.init(texture: texture, color: UIColor.clear, size: CGSize(width: size, height: size))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Run Code Online (Sandbox Code Playgroud)
Fak*_*n B 10
所以,我已经在这个工作了一个星期了,放弃了一次而只使用了pan,但我不得不重新使用pinch.我发布这个问题后几分钟,我自己得到了答案....
我发布在这里,万一有人需要这个.
func handlePinchFrom(_ sender: UIPinchGestureRecognizer) {
let pinch = SKAction.scale(by: sender.scale, duration: 0.0)
pizza.run(pinch)
sender.scale = 1.0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |