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と同じように使えます。