Сброс, когда Спрайт коснулся другого Спрайта - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь сбросить узел спрайта игрока, когда он коснулся опасного узла.Как я могу это сделать?Этот код не работает.

if player.position == danger.position {
    player.position = CGPoint(x: 0, y: 550)
} else if player.position == goal.position {
    print("Good Job!") 
}

1 Ответ

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

В простом случае, если узлы находятся в одном и том же координатном пространстве (т. Е. У них один и тот же родительский элемент), в CGRect есть метод, который сообщит вам, пересекает ли прямоугольник другой прямоугольник:

if player.frame.intersects(danger.frame) {
    //Do collision stuff here
}

Если нетиспользуйте SKNode.convert (from:) , чтобы преобразовать одну из позиций, а затем восстановить преобразованный кадр (в отличие от UIView SKNode может преобразовывать только точки, но не изгибает).

Физическая система может делать столкновенияи контакты для вас, и это предпочтительный способ сделать это, но приведенный выше пример работает, если вы не хотите заниматься физикой.

...