Я пытаюсь создать фоновую фоновую игру и иметь два фоновых изображения. Я могу использовать два разных SKSpriteNode(), SKTexture, SKAction.sequence..etc и некоторую математику, чтобы сшить их вместе, но это выглядит как изменчивое, а также я не могу получить математику в самый раз. Предполагается, что они могут быть объединены, чтобы сделать длинный изменяющийся фон, но он всегда смещается.Как объединить две SKTextures в один
Может кто-нибудь сказать мне, как объединить обе текстуры в одну, поэтому мне не нужно ломать голову с помощью математики. Или, если кто-то заметил некоторые ошибки в моей математике, можете ли вы указать их? и фон имеют одинаковую ширину 1200 пикселей
override func didMoveToView(view: SKView) {
/* Setup your scene here */
var bgTexture = SKTexture(imageNamed: "bg_2_midground_1.png")
var bgTexture2 = SKTexture(imageNamed: "bg_2_midground_2.png")
var totalBG = bgTexture.size().width + bgTexture2.size().width
var moveBG1 = SKAction.moveByX(-bgTexture.size().width, y: 0, duration: 12)
//shift bg back to be able to repeat itself
var replaceBG1 = SKAction.moveByX(bgTexture.size().width, y: 0, duration: 0.0) //move immediately back to replace self
var moveBG1Forever = SKAction.repeatActionForever(SKAction.sequence([moveBG1,replaceBG1]))
var moveBG2 = SKAction.moveByX(-bgTexture2.size().width, y: 0, duration: 12)
//shift bg back to be able to repeat itself
var replaceBG2 = SKAction.moveByX(bgTexture2.size().width, y: 0, duration: 0.0) //move immediately back to replace self
var moveBG2Forever = SKAction.repeatActionForever(SKAction.sequence([moveBG2,replaceBG2]))
for var i:CGFloat = 0; i<2; i++ {
var bg = SKSpriteNode(texture: bgTexture)
var bg2 = SKSpriteNode(texture: bgTexture2)
bg.position = CGPointMake(bgTexture.size().width/2.0 + bgTexture.size().width * i + bgTexture2.size().width * i, CGRectGetMidY(self.frame))
bg2.position = CGPointMake(bgTexture.size().width/2.0 + bgTexture2.size().width + bgTexture2.size().width * 2 * i, CGRectGetMidY(self.frame))
bg.runAction(moveBG1Forever)
bg2.runAction(moveBG2Forever)
self.addChild(bg)
self.addChild(bg2)
println(bg.position)
println(bgTexture.size().width)
println(bg2.position)
println(bgTexture2.size().width)
}
}
так что вам нужно? Вы хотите, чтобы второй фон появился после первого запуска? и петля такая навсегда? – rakeshbs
точно ... ИЛИ объединить обе текстуры в одну, так или иначе, чтобы я мог просто зацикливать один навсегда, и он выглядел правильно. Прямо сейчас некоторые грани неуместны, потому что моя математика явно неверна –