我得到了背景图片,但不重复。经过一次背景后,它会回到灰色背景。如何让背景永远重复。这是我到目前为止的代码。这是图像:http://i.imgur.com/OgdWXJG.png我在xcode中使用swift。谢谢。
override func didMoveToView(view: SKView) {
// Background
background = SKSpriteNode(imageNamed: "background")
background.position = CGPointMake(self.size.width/2, self.size.height/2)
self.addChild(background)
// loop Background Image
doAction1()
}
//loop background image
func loopBackground() {
let moveToBottom = SKAction.moveByX(0, y: 5000 - self.frame.size.height -
background.size.height, duration: 100.0)
let removeTheNode = SKAction.removeFromParent()
let moveAndRemoveBackground = SKAction.sequence([moveToBottom, removeTheNode])
background.runAction(moveAndRemoveBackground)
}
//background repeat action
func doAction1() {
let generateBackground = SKAction.sequence([
SKAction.runBlock(self.loopBackground),
SKAction.waitForDuration(1)])
let endlessAction1 = SKAction.repeatActionForever(generateBackground)
runAction(endlessAction1)
}
答案 0 :(得分:0)
就我个人而言,我认为这取决于你要对背景做些什么。
在这种情况下,最好的办法是决定何时需要另一个背景来取代。基本上,如果用户正在平移屏幕(移动它),那么一旦用户到达第一个背景,您将需要添加另一个背景。作为一个额外的好处,如果他们只能在一个方向滚动,你真的只需要2个背景节点。将它们并排放置,然后一旦用户通过,第一次将其移动到第二个前面,反之亦然。如果他们可以向任何方向移动屏幕,每个方向都有一个(左上,上中,右上,中左,中中,中右,左下,中下,右下)不会受到伤害,并通过制作用户在新的中间中心位置的任何节点来重新定位它们。
另一方面,我强烈建议实施一种称为parallaxing的技术。我会解释,但我对此非常了解,并且知道我无法做到公道,所以我建议你阅读:RayWenderlich Space Shooter Tutorial在解释与实例相关的方面做得非常出色。这些示例使用的是Spritekit,但该技术绝对可以转让。
我希望有帮助,我不熟悉Swift所以很抱歉我无法为您提供示例代码。