Не могу выбрать кнопку паузы, которую я добавил на экран - PullRequest
0 голосов
/ 21 мая 2018

Моя игра настроена с фоном, дорогой посередине, а затем полосой вверху, которая отображает кнопку счета и паузы.zPositon дороги и фона равны 1. Полоса в верхней части zPosition равна 4, а кнопка паузы zPosition также равна 4.

Код для дороги и фона.

    road.position = CGPoint(x: CGFloat(0), y: CGFloat(0))
    road.zPosition = 1
    road.name = roadName
    background.position = CGPoint(x: CGFloat(0), y: CGFloat(0))
    background.zPosition = 1
    background.name = backgroundName

    addChild(background)
    addChild(road)

Код для верхней панели.

    topBar = SKSpriteNode(color: .black, size: CGSize(width: screenWidth, height: CGFloat(150)))
    topBar.position = CGPoint(x: 0, y: (screenHeight/2) + topBar.size.height/2)
    topBar.zPosition = 4
    topBar.name = topBarName

    addChild(topBar)

Код для кнопки паузы.

    pauseButton.position = CGPoint(x: (-topBar.size.width/2) + (pauseButton.size.width + (pauseButton.size.width/2)), y: 0)
    pauseButton.zPosition = 4
    pauseButton.name = pauseButtonName

    topBar.addChild(pauseButton)

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

for node in nodes
            {
                print(node.name)

                if node.name == pauseButtonName
                {
                    print("paused")
                }
            }

Это выдаст

Optional("Road")
Optional("Background")

Я также пробовал этот метод, но "paused" никогда не возвращался.

 if pauseButton.contains(touch.location(in: self))
            {
                print("paused")
            }

Я думаю, что может быть важно отметить, что верхняя панель изначально расположена за пределами экрана.Когда вы запускаете игру, она запускает SKAction для перемещения панели на экране.

topBar.run(SKAction.moveTo(y: (screenHeight/2) - (topBar.size.height/2), duration: 0.5))

Почему я не могу выбрать кнопку паузы и как это можно решить?

1 Ответ

0 голосов
/ 22 мая 2018

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

if pauseButton.contains(touch.location(in: topBar))
{
    print("paused")
}
...