Моя игра настроена с фоном, дорогой посередине, а затем полосой вверху, которая отображает кнопку счета и паузы.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))
Почему я не могу выбрать кнопку паузы и как это можно решить?