场景

时间:2017-03-04 11:33:00

标签: sprite-kit swift3

我是Sprite Kit中的新手,我的GameScene出现了一个奇怪的问题。无法弄清楚是什么导致了这个问题。我以这种方式在viewWillAppearMethod中从控制器呈现我的场景:

        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
        }
    }

我的精灵地图集内容如下:link

比我创造我的宇宙飞船:

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次)我的太空船在场景中丢失了。可见性,位置,大小始终相同,场景上的节点数也相同。这里的一些图片link

1 个答案:

答案 0 :(得分:1)

根据评论,我已经为我的对象更改了zPosition:

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

一切都开始正常,谢谢你们。