Я использую Swift 3 с Xcode 8 и пытаюсь сделать простую игру с помощью SpritKit. В основном то, что я пытаюсь сделать, это позволить игроку перемещать мой спрайт только влево и вправо (перетаскивать его на экран) и после того, как палец понял (прикосновение закончилось), применить импульс к спрайту. Мне удалось это сделать, НО я хочу, чтобы это происходило только при первом касании, поэтому после применения импульса к спрайту игрок больше не может взаимодействовать со спрайтом, пока не произойдет какое-либо столкновение или подобное. Ниже мой код, который работает все время, а не только при первом касании.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for t in touches {
let location = t.location(in: self)
if player.contains(location)
{
player.position.x = location.x
}
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for t in touches {
if let t = touches.first {
player.physicsBody?.isDynamic = true
player.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 50))
}
}
}