将SKSpriteNode移动到触摸位置

时间:2017-08-10 14:17:13

标签: swift skaction touchesbegan

enter image description here

以上是我游戏的图片。自上而下的比赛。无论玩家在屏幕上的哪个位置接触,我都希望子弹能够持续到达该位置。我还希望玩家能够在屏幕上拖动他的手指,同样的事情发生了。这样玩家每次想要拍摄时都不必触摸屏幕。

到目前为止,我尝试了一些不同的东西,但似乎没有任何效果。

首先,我不知道我是否应该为子弹有一个单独的功能。但无论如何,这是我的子弹功能。

func spawnBullets() {
    let bullet = SKSpriteNode(imageNamed: "Bullet")
    bullet.name = "Bullet"
    bullet.zPosition = 4
    bullet.position = CGPoint(x: player.position.x + 19, y: 
    player.position.y)
    self.addChild(bullet)
}

我还有一个"计时器"对于didMove函数中的项目符号:

var timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, 
selector: Selector("spawnBullets"), userInfo: nil, repeats: true)

最后,这是我的touchesBegan功能:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {        
    for  touch in touches {            
        let location = touch.location(in: self)            
        let moveToPoint = SKAction.move(to: location, duration: 0.5)
        let repeatAction = SKAction.repeatForever(moveToPoint)            
        bullet.run(moveToPoint)
    }   
}

0 个答案:

没有答案