简体   繁体   English

用SpriteKit和Swift重复背景

[英]Repeating Background with SpriteKit and Swift

Im playing around with swift and i would like to make a simple game using SpriteKit. 我玩得很快,我想用SpriteKit做一个简单的游戏。 In the background of the app is texture image that should repeat. 应用程序的背景是应重复的纹理图像。

I mean like [img][img][img][img] 我的意思是像[img] [img] [img] [img]

How can i do this? 我怎样才能做到这一点?

In aditional I want to move it forever. 除其他外,我想永远移动它。 But I already solved this part. 但是我已经解决了这一部分。

Here is my code: 这是我的代码:

 func generateWave(){

    var wave: SKSpriteNode = SKSpriteNode(imageNamed: "wave")

    var moveWave = SKAction.moveByX(-wave.size.width * 2.0, y: 0, duration: NSTimeInterval(0.02 * wave.size.width * 2.0))
    var resetWave = SKAction.moveByX(wave.size.width * 2.0, y: 0, duration: 0.0)
    var moveWaveForever = SKAction.repeatActionForever(SKAction.sequence([moveWave,resetWave]))

    wave.position = CGPoint(x:CGFloat(1),y:CGFloat(10))

    wave.runAction(moveWaveForever)

    self.addChild(wave)

}

Try using a for loop after making your background move. 使背景移动后,尝试使用for循环。 Like this: 像这样:

#

    bgTexture = SKTexture(imageNamed: "wave")
    var movebg = SKAction.moveByX(-bgTexture.size().width, y: 0, duration: 9)
    var replacebg = SKAction.moveByX(bgTexture.size().width, y: 0, duration: 0)
    moveForever = SKAction.repeatActionForever(SKAction.sequence([movebg, replacebg]))
    for var i:CGFloat=0; i<3; i++ {

        wave = SKSpriteNode(texture: bgTexture)
        wave.position = CGPoint(x: bgTexture.size().width/2 + bgTexture.size().width * i, y: CGRectGetMidY(self.frame))
        wave.size.height = self.frame.height

        wave.runAction(moveForever)

        self.addChild(wave) 

} ## } ##

I hope this helps! 我希望这有帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM