У меня возникли проблемы с перечислением, используемым для установки zPositiion в комплекте спрайтов. Перечисление:Проблемы перечисления и zPosition в spriteKit
enum Layer:CGFloat {
case Sky = 0
case Clouds = 1
case Background = 2
case Foreground = 3
case Character = 4
case Foreground1 = 5
}
А потом я делю свою сцену в разных слоях, чтобы включить дополнительные эффекты. Я добавил worldNode как spriteKit базового узла, а затем их дети, как это:
let backGroundMountain = SKSpriteNode(imageNamed: "Scene3BackgroundMountain1")
backGroundMountain.zPosition = Layer.Background.rawValue
worldNode.addChild(backGroundMountain)
let backGroundMountainOver = SKSpriteNode(imageNamed: "Scene3BackgroundMountainOver1")
backGroundMountainOver.zPosition = Layer.Foreground.rawValue
worldNode.addChild(backGroundMountainOver)
let greenCircle = SKSpriteNode(imageNamed: "green_circle_1")
greenCircle.zPosition = Layer.Character.rawValue
backGroundMountainOver.addChild(greenCircle)
let foreGroundMountainRight = SKSpriteNode(imageNamed: "Scene3FrontMountain1")
foreGroundMountainRight.zPosition = Layer.Foreground1.rawValue
worldNode.addChild(foreGroundMountainRight)
Как вы можете видеть, GreenCircle является дочерним backGroundMountainOver в то время как foreGroundMountainRight является потомком worldNode. Я требую этого для эффектов, о которых я упоминал ранее.
Проблема в том, что, хотя zPosition foreGroundMountainRight больше, чем zPosition от greenCircle, последний появляется над первым. Единственный способ решить эту проблему - изменить:
… case Foreground1 = 7
Я не понимаю, что это такое.
Большое спасибо. Вот почему. Я не знал, что добавить друг друга, когда у вас есть ребенок. – iOSTony