我正在尝试制作我的第一款iOS游戏。由于我是编程新手,特别是在Swift中,这对我来说非常困难。
我想让我的卡通老鹰回应我的手指滑动(我想要做的是在屏幕上的任何地方滑动我的手指,我的老鹰会对此作出反应)。
我已经完成了它,所以我可以移动它,但我想做的只是在屏幕上的任何地方滑动手指,老鹰对我手指的动作作出反应。
到目前为止,这是我的代码,我在故事板中将它与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)
}
答案 0 :(得分:2)
您似乎对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
}
}
}
答案 1 :(得分:1)
这是有效的代码。
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
super.touchesMoved(touches, withEvent: event)
if (touches.count > 0) {
var touch = touches.first as! UITouch
var position = touch.locationInView(view)
println(position.x)
println(position.y)
}
}