2011-08-02 30 views
1

我試圖製作一個側滾動背景遊戲,其中滾動隨着時間的推移而增加。 我目前正在試圖通過2個背景精靈來實現這一點,一個適合整個屏幕,另一個正好在它旁邊。我將這些背景的移動安排在左邊,通過一個隨時間增加的變量(加速)減少X的位置,一旦任何背景精靈離開屏幕,我將它們再次放回屏幕旁邊。在iOS中使用加速滾動背景Cocos2D

下面的代碼

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

的問題是,一旦速度的增加,示出了子畫面之間的間隙,並得到隨時間大。有沒有辦法來解決這個問題?

在此先感謝

回答

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

我希望這對你的作品

+0

謝謝!這只是解決了問題:) – Deivuh