Заставьте спрайт двигаться во всех направлениях - PullRequest
0 голосов
/ 03 декабря 2018
@objc func handleSwipe(gesture: UIGestureRecognizer) {
    if let gesture = gesture as? UISwipeGestureRecognizer {
        switch gesture.direction {
        case .up:
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 110))
            print("Swiped up")
        case .down:
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: -110))
            print("Swiped down")
        case .right:
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 110, dy: 0))
            print("Swiped right")
        case .left:
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 0))
            ballPlayer.physicsBody?.applyImpulse(CGVector(dx: -110, dy: 0))
            print("Swiped left")
        default:
            print("No such gesture")
        }
    }

}

Я пытаюсь заставить мой узел спрайта двигаться во ВСЕХ направлениях, включая по диагонали и каждый угол между 90 и 45 градусами.Это то, что у меня есть, и я не могу понять, что делать сейчас.Любая помощь?

1 Ответ

0 голосов
/ 03 декабря 2018

Я не думаю, что UISwipeGestureRecognizer достаточно гибок для ваших нужд.Возможно, вам понадобится получить вектор от начала сенсорного события до конца, используя UIPanGestureRecognizer

В этом руководстве по UIGestureRecognizer должно быть то, что вы ищете, в частности разделпри замедлении.

...