Перемещение SKSpriteNode с пальцем, только если оно имеет тип Fruit (подкласс SKSpriteNode) - PullRequest
0 голосов
/ 06 ноября 2018

Я создаю игру, в которой пользователь может перемещать фрукты по сцене. Я хочу, чтобы пользователь мог перемещать только фрукты, а не любой другой SKSpriteNode в сцене, поэтому я написал код ниже для его реализации. Однако код не работает должным образом, так как мне кажется, что я не могу перетаскивать какие-либо из моих спрайтов, а они меняют положение только тогда, когда я перестаю касаться экрана, и они все равно не двигаются.

    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first
    if let location = touch?.location(in: self){
        let nodesTouched  = nodes(at: location)
        for node in (nodesTouched) {
            if node is Fruit{
            for t in touches {
                let locationMoved = t.location(in: self)
                node.position.x = locationMoved.x
                node.position.y = locationMoved.y
                }

            }
        }
    }


}

Кто-нибудь знает, что с ним не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 07 ноября 2018

Я нашел решение этой проблемы, которое состояло в том, чтобы в основном установить для свойства physBody.afferedByGravity значение false для этого конкретного экземпляра Fruit каждый раз, когда я прикасался к нему, а затем возвращать его в значение true, как только я перестаю к нему прикасаться. это позволяет тащить все фрукты куда угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...