Sprite kit 雪碧在现场失踪了

Sprite kit 雪碧在现场失踪了,sprite-kit,swift3,Sprite Kit,Swift3,我是新的精灵套件,我的游戏场景有一个奇怪的问题。不知道是什么导致了这个问题。我在ViewWillApperMethod中通过控制器以以下方式呈现场景: let atlas = SKTextureAtlas(named: "Sprites") atlas.preload { [unowned self] in DispatchQueue.main.async { self.gameScene = GameScene(level

我是新的精灵套件,我的游戏场景有一个奇怪的问题。不知道是什么导致了这个问题。我在ViewWillApperMethod中通过控制器以以下方式呈现场景:

        let atlas = SKTextureAtlas(named: "Sprites")
        atlas.preload { [unowned self] in
        DispatchQueue.main.async {
            self.gameScene = GameScene(level: self.level, size: self.gameSKView!.bounds.size)
            self.gameScene.scaleMode = .resizeFill
            self.gameSKView?.presentScene(self.gameScene)
            self.gameSKView?.ignoresSiblingOrder = true
            self.gameSKView?.showsNodeCount = true
        }
    }
我的sprite atlas内容如下所示:

然后我创造了我的宇宙飞船:

final class SpaceshipSpriteNode: SKSpriteNode {
    required init(size: CGSize) {
        let texture = SKTexture(image: #imageLiteral(resourceName: "Spaceship"))

        super.init(texture: texture, color: .white, size: size)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

func configureSpaceship() {
    let middleRow = Int(Double(unwrappedMatrix.rowsCount) / 2)
    let middleColumn = Int(Double(unwrappedMatrix.columnsCount) / 2)
    let xOffset = CGFloat(level.startPoint.column - middleColumn)
    let yOffset = CGFloat(level.startPoint.row - middleRow)

    spaceship = SpaceshipSpriteNode(size: spaceshipSize)
    spaceship.position = CGPoint(x: frame.midX + (spaceshipSize.width * xOffset), y: frame.midY + (spaceshipSize.height * yOffset))
    spaceshipObject.addChild(spaceship)
    addChild(spaceshipObject)
}
configureSpaceship
方法在
didMove(to view:SKView)

问题是有时(每3/4/5/6个案例中就有1个)我的宇宙飞船从现场失踪。可见性、位置、大小始终相同,场景中的节点数也相同。此处的一些图像根据评论,我已更改了对象的位置:

tile.zPosition = 0
spaceship.zPosition = 1.0
backgroundSpriteNode.zPosition = -1

谢谢大家,一切都正常了。

看来你们的宇宙飞船藏在了一块蓝色的瓷砖后面。您是否尝试过指定每个节点的
zPosition
?我将其设置为高zPosition-它可能偶尔会在其他对象后面渲染:spaceship.zPosition=100@OOPer谢谢,我已将zPozition设置为1,一切正常开始。@BohdanSavych,请将您的解决方案作为答案发布。这可能很简单,但我们无法确认它是否真的有效。