2013-05-13 4 views
0

Я делаю свое первое приложение для iOS, но у меня есть проблема ... Перемещение объектов происходит от верхней части экрана до нижней. Цель игры - убить движущиеся объекты (которые имеют случайное положение.y), прежде чем они выйдут из экрана. Если объект вышел, вы потеряете одну из трех жизней. Я делаю это так:Управление местоположением движущегося объекта

if(movingObject.position.y < 0) 
    _lives--; 

Но когда я запускаю мое приложение, и объект выйти из экрана, я теряю сразу мои 3 жизни ...

Что я могу сделать, чтобы потерять максимум 1 жизнь движущимся объектом?

Вот мой код, чтобы создать новую movingObject

double curTime = CACurrentMediaTime(); 
if (curTime > _nextMovingObjectSpawn) 
{ 
    float randSecs = [self randomValueBetween:3 andValue:5]; 
    _nextMovingObjectSpawn = randSecs + curTime; 

    float randX = [self randomValueBetween:25 andValue:winSize.width/2-20]; 
    float randDuration = [self randomValueBetween:4 andValue:6]; 

    CCSprite *movingObject = [_movingObjects objectAtIndex:_nextMovingObject]; 
    _nextMovingObject++; 
    if (_nextMovingObject >= _movingObjects.count) _nextMovingObject = 0; 

    [movingObject stopAllActions]; 
    movingObject.position = ccp(randX, winSize.height+movingObject.contentSize.height/2); 
    movingObject.visible = YES; 
    [movingObject runAction:[CCSequence actions: [CCMoveBy actionWithDuration:randDuration position:ccp(0, -winSize.height-movingObject.contentSize.height)], [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)], nil]]; 
} 

спасибо! :)

+1

Не "в Xcode". Xcode - это IDE, он не создает случайный объект - ваш код делает. –

+0

Да, я знаю, вот что я имею в виду. – Robho

+0

Как часто вы проверяете moveObject? Вы уничтожаете его (или устанавливаете его на ноль)? Используете ли вы цикл или таймер? – arnoapp

ответ

0

Если ваши объекты перемещаются сверху вниз, игрок должен терять жизнь, когда один из них достигает нижней части экрана. Вероятно, вы потеряете все жизни, потому что вы проверяете состояние много раз. Чтобы потерять только одну жизнь на объект, вы должны, вероятно, удалить ее и прекратить проверять, находится ли ее положение ниже нижнего края экрана.

+0

Thats wrong 0 <0 is False – arnoapp

+0

Это правда, но объекты могут начинаться за пределами границ экрана. –

+0

Я думаю, что из нынешних знаний это лучший ответ;) – arnoapp

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