2
更改背景图像分数
我正在开发一款使用Swift和SpriteKit的游戏。我希望背景以一定的分数改变。这里是代码:Swift SpriteKit基于
class GameScene: SKScene {
var bg = SKSpriteNode()
override func didMoveToView(view: SKView) {
makeBg()
}
func makeBg() {
let bgTexture = SKTexture(imageNamed: "img/bg.png")
let moveBg = SKAction.moveByX(-bgTexture.size().width, y: 0, duration: 9)
let replaceBg = SKAction.moveByX(bgTexture.size().width, y: 0, duration:0)
let animateBg = SKAction.repeatActionForever(SKAction.sequence([moveBg, replaceBg]))
for var i: CGFloat = 0; i<3; i++ {
let bg = SKSpriteNode(texture: bgTexture)
bg.name = "background"
bg.position = CGPoint(x: bgTexture.size().width/2 + bgTexture.size().width * i, y: CGRectGetMidY(self.frame))
bg.size.height = self.frame.height
bg.runAction(animateBg)
addChild(bg)
}
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if score == 0 {
bg.texture = SKTexture(imageNamed: "img/bg.png")
} else if score == 3 {
bg.texture = SKTexture(imageNamed: "img/bgOri.png")
}
}
但图像不会改变...哪里是错误?
您是否检查过该if/else块内的代码是否实际执行?另外,你在你的touchesBegan中使用'bgTexture'和'bg.texture' ...看起来很可疑... – Whirlwind
是的代码被执行了......问题是我在场景运行时无法更改背景图像。 ..请帮帮我。我只能改变背景图像,如果我完全改变了我的代码......在gamescene中声明var bg = SKSpriteNode(imageNamed:“img/bg.png”)...但是没有滚动就让背景静止。 – Swift1
好的,这是一个开始。让我试着重现这个问题......你有没有在任何时候看到MissingResource图像(白色方框中带有红色的X)? – Whirlwind