Я пытаюсь заставить действие завершиться, прежде чем можно будет вызвать другое действие. Я просмотрел различные примеры временных задержек и 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, поэтому, если его нужно пометить как обман, это нормально, но я бы очень хотел помочь, так как он действительно сдерживает меня.