cocos2dには
画面遷移の時にViewがアニメーションして遷移するtransitionというものが
いくつか用意されていますが、
希望するアニメーションが無かったので、自作してみました。
案外簡単に自作することができました。
例えば、MoveInBの逆の動きをしたい場合、
ヘッダーファイルは
#import "cocos2d.h" @interface CCTransitionMoveInBReverse : CCTransitionScene {} -(void) initScenes; -(CCActionInterval*) action; @end
メインファイルは
@implementation CCTransitionMoveInBReverse -(void) onEnter { [super onEnter]; [self initScenes]; CCActionInterval *out = [self action]; id outAction = [CCSequence actions: [self easeActionWithAction:out], [CCCallFunc actionWithTarget:self selector:@selector(finish)], nil]; [outScene_ runAction: outAction]; } -(void) sceneOrder { inSceneOnTop_ = NO; } -(void) initScenes { [inScene_ setPosition: ccp( 0,0) ]; } -(CCActionInterval*) action { CGSize s = [[CCDirector sharedDirector] winSize]; return [CCMoveBy actionWithDuration:duration_ position:ccp( 0, -s.height)]; } -(CCActionInterval*) easeActionWithAction:(CCActionInterval*)action { return [CCEaseOut actionWithAction:action rate:2.0f]; } @end
というファイルを作り、
使いたい場所でこのファイルをインポートすると、
他のtransitionと同じように使えます。