Как определить, находится ли узел в зоне действия при нажатии на кнопку? - PullRequest
0 голосов
/ 09 января 2019

Посмотрите на изображение, красный прямоугольник перемещается сверху вниз. Я хочу знать, когда я коснулся синей кнопки, если красный прямоугольник находится в серой области. И когда прямоугольник перемещается по серой области, я хочу знать, нажата ли кнопка?

Сначала я пытался определить положение красного прямоугольника, когда я касался кнопки, но если есть много прямоугольников, как определить каждый из них?

А также подумайте, может ли обнаружение столкновений сделать это, но у меня нет идеала. Поэтому, пожалуйста, помогите. Спасибо.

Пример изображения

1 Ответ

0 голосов
/ 15 января 2019

Предположим, что ваш красный прямоугольник, синяя кнопка и серая область являются SKNode или его дочерними элементами, например: SKSpriteNode или SKShapenode.

Вы можете проверить столкновение в любое время в функции обновления.

override func update(_ currentTime: TimeInterval)
{
    // Called before each frame is rendered

    if red_rect.intersects(blue_button) && red_rect.intersects(gray_area)
    {
        // at this point the red_rect touched the blue_button
        // and the red_rect is over the gray_area

        // *your code here*
    }
}

Подробнее о функции пересечения (_:) вы можете найти здесь.

...