2014-03-01 2 views
0

Мои инопланетяне генерируются в нижней части экрана случайным образом вдоль оси X. Они перемещаются по диагонали в верхний левый угол экрана.Как переместить спрайт прямо справа налево?

Я бы хотел, чтобы они вместо этого отображались с правой стороны экрана случайным образом вдоль оси Y, а затем перемещались по прямой линии справа налево.

Как я могу изменить следующий код? Я новичок здесь ... пожалуйста, помогите, если вы можете:

if (curTime > _nextAlienSpawn) 
{ 

    float randSecs = [self randomValueBetween:0 andValue:13]; 
    _nextAlienSpawn = randSecs + curTime; 

    float randY = [self randomValueBetween:0 andValue:winSize.height]; 
    float randDuration = [self randomValueBetween:30 andValue:60]; 

    alien = [_aliens objectAtIndex:_nextAlien]; 
    _nextAlien++; 
    if (_nextAlien >= _aliens.count) _nextAlien = 0; 

    [alien stopAllActions]; 
    alien.position = ccp(winSize.width+alien.contentSize.width, randY); 
    alien.visible = YES; 
    [alien runAction:[CCSequence actions: 
    [CCMoveBy actionWithDuration:randDuration position:ccp(- winSize.width-alien.contentSize.width, -500)], 

    [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)], 
         nil]]; 

} 
+0

Похоже, я сделал некоторый прогресс, отредактировав следующую строку: 'alien.position = ccp (winSize.width + alien.contentSize.width, randY);' – Greg

+0

Я вычитал вместо добавленного, и мои инопланетяне, похоже, генерируют немного выше на экране, чем раньше. – Greg

+1

, если ваша вторая в последней строке будет 'ccp (- winSize.width-alien.contentSize.width, -500)' not 'winSize.height'? – NHDaly

ответ

1

Ваша проблема заключается в том, что ваше приложение работает в ландшафтном режиме, но вы все еще используете координаты окна, которые всегда относятся к портрету координаты , This stack overflow question решает вопрос, который у вас есть!

От этого ответа кажется, что вам нужно создать новый дочерний вид и позволить этому представлению правильно вращаться, чтобы X и Y были относительно вид, а не на окно. Затем ваш код должен работать, как вы его выше!

Смежные вопросы