2011-06-21 75 views
2

我正在使用Cocos2D 0.99.5。我有一個CCParallaxNode,並添加了背景精靈。出於某種原因,直到我開始我的地圖開始移動一點時,它們纔會顯示。與球員的運動慢慢滾動。Cocos2D:CCParallaxNode直到我移動我的地圖時才顯示

我有這個添加到INIT:

winSize = [CCDirector sharedDirector].winSize; 

    bgMountainsMax = floor(winSize.width/240)+1; 

    if((int)winSize.width%240 > 0){ 
     bgMountainsBumper = ((int)winSize.width%240)/bgMountainsMax; 
    }else{ 
     bgMountainsBumper = 0; 
    } 

    backgroundNode = [CCParallaxNode node]; 
    [self addChild:backgroundNode z:-1]; 

    CGPoint mountainSpeed = ccp(0.5, 0.5); 

    bgMountains = [[NSMutableArray alloc] initWithCapacity: bgMountainsMax]; 

    for(int i=0; i<bgMountainsMax; ++i){ 
     mountain = [CCSprite spriteWithFile:@"mountainBG1.png"]; 
     mountain.opacity = 80; 
     [bgMountains insertObject:mountain atIndex:i]; 

     [backgroundNode addChild:[bgMountains objectAtIndex:i] z:0 parallaxRatio:mountainSpeed positionOffset:ccp((240*i)+(bgMountainsBumper*i),98)]; 

    } 

而這個加入到更新:

for (CCSprite *mountainNum in bgMountains) { 
    if ([backgroundNode convertToWorldSpace:mountainNum.position].x < -(240/2)) { 
     [backgroundNode incrementOffset:ccp(winSize.width+(240),0) forChild:mountainNum]; 
    } 

    if ([backgroundNode convertToWorldSpace:mountainNum.position].x > winSize.width+(240/2)) {   
     [backgroundNode incrementOffset:ccp(-(winSize.width+240),0) forChild:mountainNum]; 
    } 
} 

回答

0

我想你應該曾經在你的初始化的東西

年底調用更新功能的東西
[backgroundNode incrementOffset:ccp(winSize.width+(240),0) forChild:mountainNum]; 
[backgroundNode incrementOffset:ccp(-(winSize.width+240),0) forChild:mountainNum]; 

沒有條件,最初設置它。

相關問題