基本上,說我有這樣的:Cocos-2d操作 - 讓他們在繼續閱讀代碼中的下一行之前等待?
[sprite runAction:action];
[sprite2 runAction:action2];
在cocos2d,這將在同一時間執行兩個。但是說我想在第一行完成之前完成第一行,那我該怎麼做?
基本上,說我有這樣的:Cocos-2d操作 - 讓他們在繼續閱讀代碼中的下一行之前等待?
[sprite runAction:action];
[sprite2 runAction:action2];
在cocos2d,這將在同一時間執行兩個。但是說我想在第一行完成之前完成第一行,那我該怎麼做?
在第一個精靈上,運行[action,startSprite2]的CCSequence,其中startSprite2是另一個動作(CCCallFunc)。當'action'完成時,startSprite2例程將被調用。將它添加到你的模塊中,然後在那個例程中啓動你的sprite2動作。
@YvesLeborg答案是正確的。還有很多其他的方式來做到這一點。一種方式可以是這樣的。對於像
-(void)runSprite1Action{
[sprite1 runAction:action];
}
-(void)runSprite2Action{
[sprite2 runAction:action2];
}
每個精靈行動創建兩個函數,然後父場景/層上可以添加CCSequence行動,將首先調用的第一個動作,然後當第一個動作將完成運行,它會調用第二次行動。即
CCSequence *sequence = [CCSequence actions:[CCCallFunc actionWithTarget:self selector:@selector(runSprite1Action)],
[CCCallFunc actionWithTarget:self selector:@selector(runSprite2Action)], nil];
[self runAction:sequence];
我希望這有助於。