SKSpriteNode通过触摸拖动移动



我正试图通过触摸屏幕在屏幕上拖动SKSpirteNode。但我希望能够持续移动精灵,目前我的代码只将精灵移动到我触摸的位置,但如果我按住并移动精灵,精灵将不会跟随。此外,我不想"不得不"触摸SKSpriteNode来激活运动,我想触摸屏幕上的任何地方,并从该SKSpriteNode获得运动响应。

这是我当前的代码:

class GameScene: SKScene {
   override func didMoveToView(view: SKView) {
    // SpriteNode I want to drag around
    basket = SKSpriteNode(texture: basketTexture)
    self.addChild(basket)
   }
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    /* Called when a touch begins */
    var nodeTouched = SKNode()
    var currentNodeTouched = SKNode()
    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)
        nodeTouched = self.nodeAtPoint(location)
        basket.position = location
    }

谢谢你的帮助。

我通过使用函数touchesMoved而不是touchesBegan解决了这个问题,并且工作非常顺利。这是最后的代码:

class GameScene: SKScene {
 override func didMoveToView(view: SKView) {
// SpriteNode I want to drag around
basket = SKSpriteNode(texture: basketTexture)
self.addChild(basket)
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
var nodeTouched = SKNode()
var currentNodeTouched = SKNode()
for touch: AnyObject in touches {
    let location = touch.locationInNode(self)
    nodeTouched = self.nodeAtPoint(location)
    basket.position = location
}

最新更新