3
私のスプライトノードのサイズを変更するピンチジェスチャ認識機能を実装しようとしています。私はそれを行うために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 {
}
}
ここ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")
}