2013-02-27 3 views
0

Я новичок в cocos2d поэтому, пожалуйста, помогите мне, если и можетУстановите спрайт с помощью положения фона

У меня есть фон движущуюся справа налево, а фон содержит небольшие окна с 3-мя рядами окон

_spaceDust1 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"]; 
_spaceDust2 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"]; 

    CGPoint dustSpeed = ccp(0.1 , 0.1); 
    CGPoint bgSpeed = ccp(0.05 , 0.05); 

    [_backgroundNode addChild:_spaceDust1 z:0 parallaxRatio:dustSpeed positionOffset:ccp(0,winSize.height/2)]; 
    [_backgroundNode addChild:_spaceDust2 z:0 parallaxRatio:dustSpeed positionOffset:ccp(_spaceDust1.contentSize.width , winSize.height/2)]; 

Теперь добавьте врагов Wich также двигаться справа налево с той же скоростью

 _robbers = [[CCArray alloc] initWithCapacity:kNumAstroids]; 
    for (int i = 0; i < kNumAstroids; ++i) { 
     CCSprite *asteroid = [CCSprite spriteWithSpriteFrameName:@"robber.png"]; 
     asteroid.visible = NO; 
     [_batchNode addChild:asteroid]; 
     [_robbers addObject:asteroid]; 
    } 

в методе обновления:

 double curTime = CACurrentMediaTime(); 
    if (curTime > _nextRunemanSpawn) { 
    float randSecs = [self randomValueBetween:0.20 andValue:1.0]; 
    _nextRunemanSpawn = randSecs + curTime; 

    float randY = 80.0; 
    float randY1 = 185.0; 
    float randY2 = 293.0; 
    float randDuration = [self randomValueBetween:5.2 andValue:5.2]; 
    float randDuration1 = [self randomValueBetween:1.0 andValue:1.0]; 

    CCSprite *asteroid = [_robbers objectAtIndex:_nextRobber]; 
    _nextRobber++; 

    if (_nextRobber >= _robbers.count) { 
     _nextRobber = 0; 
    } 
    //[asteroid stopAllActions]; 
    int winChoice = arc4random() % 3; 
    if (winChoice == 0) { 
     asteroid.position = ccp(winSize.width +asteroid.contentSize.width/2 , randY); 
     asteroid.visible = YES; 

    } 
    else if(winChoice == 1){ 

     asteroid.position = ccp(winSize.width +asteroid.contentSize.width/2 , randY1); 
     asteroid.visible = YES; 

    }else { 
     asteroid.position = ccp(winSize.width +asteroid.contentSize.width/2 , randY2); 
     asteroid.visible = YES; 

    } 



    [asteroid runAction:[CCSequence actions:[CCMoveBy actionWithDuration:randDuration position:ccp(-winSize.width-asteroid.contentSize.width, 0)], 
         [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)],nil]]; 

Все идет хорошо, но я хочу, чтобы установить это враг к окну и в случайном положении
так, как я могу установить й-аргумент врагов, так что можно исправить, чтобы окна на заднем плане?

ответ

0

По какой-то причине я не могу комментировать, поэтому это написано как ответ. Что именно ты пытаешься сделать? Я немного смущен. Похоже, вы хотите, чтобы позиция X была установлена ​​так, чтобы она находилась в одной из трех случайных позиций, это правильно?