2013-08-19 3 views
2

Моя проблема: мне нужно перемещать свой спрайт непрерывно справа налево (ориентация - пейзаж) Я искал и нашел учебник от Ray (спасибо ему) , но изображение не похоже на непрерывную прокрутку мой кодКак перемещать спрайт непрерывно вправо-влево (Parallax)?

-(id) init 
{ 
// always call "super" init 
    if((self=[super init])) { 

     CGSize screenSize = [CCDirector sharedDirector].winSize; 

     // 1) Create the CCParallaxNode 
     backgroundNode = [CCParallaxNode node]; 
     [self addChild:backgroundNode z:-1]; 

     // 2) Create the sprites we'll add to the CCParallaxNode 
     Back = [CCSprite spriteWithFile:@"bg_front_spacedust.png"]; 
     Back.rotation = -90; 
     Back1 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"]; 
     Back1.rotation = -90; 

     // 3) Determine relative movement speeds for space dust and background 
     CGPoint dustSpeed = ccp(0.1, 0.1); 

     // 4) Add children to CCParallaxNode 
     [backgroundNode addChild:Back z:0 parallaxRatio:dustSpeed positionOffset:ccp(screenSize.width/2, screenSize.height/2)]; 
     [backgroundNode addChild:Back1 z:1 parallaxRatio:dustSpeed positionOffset:ccp(screenSize.width,0)]; 

     // 5) Enable updates 
     [self scheduleUpdate]; 
} 
    return self; 
} 

- (void)update:(ccTime)dt { 

    // 1) Update background position 
    CGPoint backgroundScrollVel = ccp(0,-1000); 
    backgroundNode.position = ccpAdd(backgroundNode.position, ccpMult(backgroundScrollVel, dt)); 

    // 2) Check for background elements moving offscreen 
    NSArray *spaceDusts = [NSArray arrayWithObjects:Back, Back1, nil]; 
    for (CCSprite *spaceDust in spaceDusts) { 
     if ([backgroundNode convertToWorldSpace:spaceDust.position].x < -spaceDust.contentSize.width) { 
      [backgroundNode incrementOffset:ccp(2*spaceDust.contentSize.width,0) forChild:spaceDust]; 
     } 
    } 
} 

изображение размером 1024 X 320
может кто-нибудь вести меня по этому вопросу
заранее спасибо

ответ

2

Вы можете найти шаг за шагом руководство по параллакса здесь: http://www.raywenderlich.com/3611/how-to-make-a-space-shooter-iphone-game Просто прокрутите немного, пока не найдете Добавление прокрутки Parallax раздел.

Но я бы рекомендовал пройти весь учебник. Это действительно хорошо.

+0

увидеть мой отредактированный вопрос. Plz ведите меня по тому же –

0

позволяет попробовать ..

CCSprite *bird = [CCSprite spriteWithFile:@"bird.png"]; 
     bird.position = ccp(100,80); 
     [map addChild:bird]; 


     id move = [CCMoveTo actionWithDuration:4.2 position:ccp(400, 80)]; 
     id move1 = [CCMoveTo actionWithDuration:4.2 position:ccp(200, 80)]; 
     [bird runAction:[CCRepeatForever actionWithAction:[CCSequence actions:move,move1, nil]]];