Skip to main content
 首页 » 操作系统

iOS Swift之使对象响应平移/滑动触摸手势

2024年01月01日63emanlee

我正在尝试制作我的第一款 iOS 游戏。由于我是编程新手,尤其是 Swift,这对我来说非常困难。

我正在尝试让我的卡通老鹰响应我的手指滑动(我想做的是在屏幕上的任意位置滑动我的手指,我的老鹰会响应)。

我这样做是为了让它四处移动,但我想做的只是在屏幕上的任意位置滑动我的手指,老鹰会对我手指的移动使用react。

到目前为止,这是我的代码,我已将它与 Storyboard 中的 PanGestureRecognizer 相关联:

  @IBAction func handlePan(recognizer:UIPanGestureRecognizer) { 
    let translation = recognizer.translationInView(self.view) 
    recognizer.view!.center = CGPoint(x:recognizer.view!.center.x + translation.x, 
        y:recognizer.view!.center.y + translation.y) 
    recognizer.setTranslation(CGPointZero, inView: self.view) 
} 

请您参考如下方法:

看来您对 UIKit 和 SpriteKit 感到困惑。

基本上,您需要做的是跟踪您的触摸在屏幕上的移动。由于 SKNode 继承自 UIResponder,因此最简单的方法是覆盖:

touchesBegan(_:withEvent:) 
touchesMoved(_:withEvent:) 
touchesEnded(_:withEvent:) 

例如让鸟节点跟随你的手指:

class YourScene : SKScene { 
 
    var birdNode: BirdNode 
 
    // Additional setup, etc 
 
    override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { 
        super.touchesMoved(touches, withEvent: event) 
        if touches.count > 0 { 
            var touch: UITouch = touches.anyObject()! as UITouch 
            var position: CGPoint = touch.locationInView(self.view) 
            position = self.convertPointFromView(position) 
            birdNode.position = position 
        } 
    } 
 
}