2013-04-07 3 views
0

내 cocos2d 앱에서 Parallax Scrolling Effect를 사용하고 있습니다. 내 배경을 지속적으로 원합니다 스크롤; 그러나 내 배경이 왼쪽으로 스크롤되기 때문에 잘못 구현할 수도 있지만 이후에는 다시는 돌아 오지 않습니다. 여기 Cocos2d에서 시차 스크롤 배경을 사용하는 데 문제가 있습니까?

코드입니다 :

- (void) setUpBackground 
{ 

    CGSize winSize = [CCDirector sharedDirector].winSize; 

    // Create the CCParallaxNode 
    _backgroundNode = [CCParallaxNode node]; 
    [self addChild:_backgroundNode z:-2]; 

    // Create ths prites 
    para1 = [CCSprite spriteWithFile:@"bg.png"]; 
    para2= [CCSprite spriteWithFile:@"shipp.png"]; 

    // Determine relative movement speeds for trees and background 
    CGPoint treeSpeed = ccp(0.1, 0.1); 
    CGPoint bgSpeed = ccp(0.5, 0.5); 

    // Add children to the CCParallexNode 
    [_backgroundNode addChild:para1 z:0 
       parallaxRatio:treeSpeed 
       positionOffset:ccp(160,winSize.height/2)]; 

    [_backgroundNode addChild:para2 z:1 
       parallaxRatio:bgSpeed 
       positionOffset:ccp(para1.contentSize.width* para1.scale, winSize.height/2)]; 

} 

- (void)updateBackground:(ccTime)dt 
{ 
    CGPoint backgroundScrollVel = ccp(-1000, 0); 
    _backgroundNode.position = ccpAdd(_backgroundNode.position, ccpMult(backgroundScrollVel, dt)); 

} 
+0

아마도 도움이 될 것입니다. http://www.learn-cocos2d.com/2012/12/ways-scrolling-cocos2d-explained/ – LearnCocos2D

답변

0

당신은 전체 코드가 표시되지 않습니다하지만 난 당신이 다른 곳 updateBackground()을 예약 할 수 같아요.

updateBackground()에서 배경의 위치를 ​​설정하고 positionX는 초과 작업으로 감소합니다. 그것이 다시는 결코 돌아 오지 않는 이유입니다.

전체 장면 너비, 배경 너비를 계산하고 배경이 배경 가장자리에 도달했을 때 updateBackground() 일정을 취소해야합니다.