Кажется, вы забыли принять во внимание пройденное расстояние.Выражение больше, чем могло быть вызвано, потому что вы перешли в дальний.Я предполагаю, что ваше движение превышает 1 пиксель / кадр.
Я не уверен, какие значения питают ваше движение, но я думаю, что для учета движения вы должны сделать что-то вроде ...
if ((background.center.x) < -511){
CGFloat dist = background.center.x + 512;
background.center = CGPointMake(1536+dist, background.center.y);
}
if ((background2.center.x) < -511){
CGFloat dist = background2.center.x + 512;
background2.center = CGPointMake(1536+dist, background2.center.y);
}