Прокрутка фона с ускорением в iOS Cocos2D - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь создать фоновую игру с боковой прокруткой, в которой прокрутка со временем увеличивается. В настоящее время я пытаюсь добиться этого с помощью двух фоновых спрайтов, один из которых помещается на весь экран, а другой - рядом с ним. Я планирую перемещение этих фонов влево, уменьшая положение X на переменную, которая увеличивается со временем (ускоряется), и как только любой из фоновых спрайтов покидает экран, я заменяю их прямо рядом с экраном.

Вот код

- (void) scrollBackground:(ccTime) dT { 
  bg1.position = ccp(bg1.position.x - movingSpeed/2*dT, size.height/2);
  bg2.position = ccp(bg2.position.x - movingSpeed/2*dT, size.height/2);

  if (bg1.position.x <= -size.width/2) {        
    bg1.position = ccp(size.width + size.width/2, size.height/2);
  } else if (bg2.position.x <= -size.width/2) {
    bg2.position = ccp(size.width + size.width/2, size.height/2);
  }

Проблема в том, что как только скорость увеличивается, между спрайтами появляется разрыв, который со временем увеличивается. Есть ли способ это исправить?

Заранее спасибо

1 Ответ

2 голосов
/ 05 августа 2011

Если честно, я не уверен, что является причиной вашей проблемы, но я вижу, что ваши фоновые спрайты связаны с экраном ... Вы можете попробовать сделать фоновые спрайты относительно друг друга ... Возможно, это исправит вашипроблема.Вы могли бы сделать что-то вроде этого:

- (void) scrollBackground:(ccTime) dT {
    bg1.position = ccp(bg1.position.x - movingSpeed/2*dT, size.height/2);
    bg2.position = ccp(bg2.position.x - movingSpeed/2*dT, size.height/2);

    if (bg1.position.x <= -size.width/2) {
        bg1.position = ccp(bg2.position.x + size.width, size.height/2);
    } else if (bg2.position.x <= -size.width/2) {
        bg2.position = ccp(bg1.position.x + size.width, size.height/2);
    }
    .....
}

Я надеюсь, что это работает для вас

...