cocos2d iphone ждет завершения действия / завершения - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь заставить действие завершиться, прежде чем можно будет вызвать другое действие. Я просмотрел различные примеры временных задержек и CCSequencing, и это то, что у меня есть, но это все еще не работает. Мне нужен полный .5, чтобы выйти, прежде чем можно будет вызвать другое действие (будь то влево, вправо или вниз). Все работает до тех пор, пока вы не нажмете кнопки до завершения действия, то есть, когда предыдущее действие было прервано.

-(void) moveup{
    CCNode *mySprite = [self getChildByTag:kTagSprite];
    //moves sprite up 30 pixels in 1/2 second
    [mySprite runAction: [CCMoveTo actionWithDuration:.5 position:ccp(mySprite.position.x, mySprite.position.y+30)]];
}

//this is inside CCtouchesbegan.  upsprite is a box that gets clicked to move the object up
if(CGRectContainsPoint([upsprite boundingBox], point)){
    //should call CCSequence of events, method moveup, and then CCDelayTime, forcing a pause
    [self runAction:[CCSequence actions:[CCCallFuncND actionWithTarget:self selector:@selector(moveup) data:nil], [CCDelayTime actionWithDuration:.5], nil]];
}

Я пытался сделать паузу, используя [[CCDirector sharedDirector] pause], но это останавливает все, включая спрайт, который я перемещаю. CCDelayTime, похоже, не работает в моем текущем примере.

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

1 Ответ

1 голос
/ 10 июня 2011

Вы можете создать BOOL-переменную «lock» и запустить действие только для «mySprite»:

if(lock) {[mySprite runAction:...];}

установите BOOL lock в NO в начале, и каждый раз, когда вы начинаете действие, установите его в "YES" ... затем добавьте CCCallFunc в CCSequence, чтобы установить блокировку обратно в "NO"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...