Я пытался реализовать бесконечную фоновую анимацию, которая должна переключаться между 4 изображениями одинаковой высоты, а затем повторять последовательность. Однако, похоже, что он не работает должным образом.
Примечание anchorPoint = CGPoint(x: 0.5, y: 0)
func updateBackground(currentTime: TimeInterval){
var delta: CGFloat = 0.0
if lastUpdate != nil {
delta = CGFloat(currentTime - lastUpdate)
}
//First increment position
activeBackground1.position.y += delta*backgroundVelocity
activeBackground2.position.y += delta*backgroundVelocity
//Detect bounds surpass
if activeBackground1.position.y > activeBackground1.size.height + screen.height/2 {
lastSky = (lastSky + 1)%4
sky1 = SKTexture(imageNamed: "sky" + String(lastSky))
activeBackground1.texture = sky1
//Reposition: background1 new position is equal to minus the entire height of
//background2 + its y size.
activeBackground1.position.y = -abs(activeBackground2.size.height-activeBackground2.position.y)
}
if activeBackground2.position.y > activeBackground2.size.height + screen.height/2 {
lastSky = (lastSky + 1)%4
sky1 = SKTexture(imageNamed: "sky" + String(lastSky))
activeBackground2.texture = sky1
activeBackground2.position.y = -abs(activeBackground1.size.height-activeBackground1.position.y)
}
}
Алгоритм обновления работает нормально, но когда необходимо изменить положение одного из двух фонов, кажется, есть смещение около 10.0 CGFloat
от одного фона к другому. Что я делаю не так?
РЕДАКТИРОВАТЬ: оказалось, что ошибка была обнаружена в моем изображении, который представил несколько пустых строк и, следовательно, сгенерировал глюки визуализации. Так что мой код работает отлично.