[cocos2d]CCSequence#02 CCCallFuncND
iPhone Game「社畜!ナカムラくん」の制作で実践していた方法です。
CCSequenceを使ってメソッドを実行するとき
前のエントリーではCCCallFuncを使っていましたが
メソッドに値を渡したいときはCCCallFuncNDを使うとよい。
使い方。
下記の例だとdataに渡す値をretainしないとEXC_BAD_ACCESSになる。
id act_func0,act_func1,act_func2; CCSequence* seq; act_func0=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:15]retain]]; act_func1=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:13]retain]]; act_func2=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:14]retain]]; seq=[CCSequence actions:act_func0,[CCDelayTime actionWithDuration:0.6f],act_func1,[CCDelayTime actionWithDuration:0.9f],act_func2,nil]; [se runAction:seq]; -(void)playSE:(id)n data:(id)v{ NSNumber* dt=(NSNumber*)v; int seno=[dt intValue]; switch (seno) { case 0: [[SimpleAudioEngine sharedEngine] playEffect:@"girigiri.mp3"]; break; default: break; } [v release]; v=nil; }