在iOS Cocos2D中加速滚动背景

时间:2011-08-02 04:06:00

标签: ios cocos2d-iphone scroll

我正在尝试制作一个侧滚动背景游戏,其中滚动会随着时间的推移而增加。 我目前正试图通过拥有2个背景精灵来实现这一目标,一个适合整个屏幕,另一个适合它。我安排这些背景的移动向左移动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 个答案:

答案 0 :(得分:2)

说实话我不确定是什么原因导致你的问题,但是我发现你的背景精灵都是相对于屏幕......你可能会尝试让你的背景精灵相对于彼此...也许这会修复你的问题。你可以这样做:

- (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);
    }
    .....
}

我希望这对你有用