Я извиняюсь заранее, если это глупый вопрос, но я учусь, и я не могу найти никакой помощи. Большая часть моего опыта связана с раскадными версиями, поэтому SpriteKit - это мой первый реальный набег на то, чтобы делать все программно.Как заменить фоновое изображение с помощью SpriteKit?
У меня есть прокручивающая 2D игра, очень похожая на Flappy Bird. Каждый раз, когда игрок набирает счет, кратный, скажем, 10, мне нужен фон для изменения. Фон - это одно изображение, которое медленно перемещается влево от экрана и заменяется собой.
Проблема в том, что когда она достигает 10, я не могу заменить изображение другим изображением. Я успешно добавил новое изображение поверх старого, используя zPosition, но исходное изображение все еще находится под ним, и это кажется неуклюжим и неустойчивым.
Я попытался удалить исходное фоновое изображение от родителя, но я не могу понять, как это сделать.
Вот мой код. Заранее спасибо.
var currentBg = SKTexture(imageNamed: "img/bgYellow.png")
func makeBackground() {
let movebg = SKAction.moveByX(-currentBg.size().width, y: 0, duration: 9)
let replacebg = SKAction.moveByX(currentBg.size().width, y: 0, duration: 0)
let movebgForever = SKAction.repeatActionForever(SKAction.sequence([movebg, replacebg]))
for var i:CGFloat=0; i<3; i++ {
bg = SKSpriteNode(texture: currentBg)
bg.position = CGPoint(x: currentBg.size().width/2 + currentBg.size().width * i, y: CGRectGetMidY(self.frame))
bg.size.height = self.frame.height
bg.runAction(movebgForever)
movingObjects.addChild(bg)
}
}
fun didMoveToView() {
//Set up game, etc...
makeBackground()
}
if score == 10 {
//I've tried adding the following line to remove the first image, but no luck
//movingObjects.removeChildrenInArray([bg])
currentBg = SKTexture(imageNamed: "img/bgRed.png")
makeBackground()
} else if score == 20 {
currentBg = SKTexture(imageNamed: "img/bgBlue.png")
makeBackground()
} //Else etc...