cocos2dのtransitionを自作する

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

コメントを残す

%d人のブロガーが「いいね」をつけました。