2015-10-30 4 views
2

У меня возникли проблемы с перечислением, используемым для установки 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 

Я не понимаю, что это такое.

ответ

1

Это происходит из-за того, что вы добавляете узел greenCircle (zIndex 4) на узле, который уже находится в zIndex = 3 (backGroundMountainOver), давая в общей сложности zIndex 7. Когда foreGroundMountainRight, прикрепленный к мировому узлу (я предполагаю, что по умолчанию zIndex = 0) находится на zIndex = 5.

+0

Большое спасибо. Вот почему. Я не знал, что добавить друг друга, когда у вас есть ребенок. – iOSTony

Смежные вопросы