Sprite kit 雪碧在现场失踪了
我是新的精灵套件,我的游戏场景有一个奇怪的问题。不知道是什么导致了这个问题。我在ViewWillApperMethod中通过控制器以以下方式呈现场景: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
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,请将您的解决方案作为答案发布。这可能很简单,但我们无法确认它是否真的有效。