Saturday, September 24, 2011

Cocos2D: How to create a "Credits" scene

How's it going, bros!?


Here's another fast a simple post to help you enhance you app and consolidate you name on the credits:




#import "cocos2d.h"
#import "CCLayer.h"
#import "MainMenu.h"

@interface Credits : CCLayer{
    CCMenu* GAME_CREDITS;
}

+(CCScene *)scene;
-(void)runAnimation:(CCNode *)node;
-(id)init;

@end






#import "Credits.h"


@implementation Credits

+(CCScene *)scene{
    
    CCScene *scene = [CCScene node];
    Game *layer = [Credits node];
    [scene addChild:layer];
    return scene;
    
}

-(void)backToMenu:(id)sender{
    [[SoundManager sharedSoundManager] playSound:@"TOUCH"];
    CCScene* _scene = [MainMenu scene];
    [[CCDirector sharedDirector]replaceScene:[CCTransitionMoveInL transitionWithDuration:1.0 scene:_scene]];
    
}

-(void)doIt{
    [self runAnimation:GAME_CREDITS];
}

-(void)removeMe:(CCNode*)node{
    //NSLog(@"ENTROU NO REMOVE ME");
    GAME_CREDITS.position = ccp(CENTER_X, CENTER_Y*(-1)+(-100));
    [self runAnimation:GAME_CREDITS];
}

-(void)runAnimation:(CCNode *)node{
    
    [node runAction: [CCSequence actions: [CCMoveTo actionWithDuration:15.0 position:ccp(CENTER_X,CENTER_Y*3+150)], 
                                          [CCCallFuncN actionWithTarget:self selector:@selector(removeMe:)],nil]];
}

-(void)credits{
    //NSLog(@"ENTROU NOS CREDITS");
    [self runAnimation:GAME_CREDITS];
}

- (id)init
{
    self = [super init];
    if (self) {
        
        CCSprite* background = [CCSprite spriteWithFile:@"SV-BACKGROUND.png"];
        background.position = ccp(CENTER_X, CENTER_Y);
        [self addChild:background z:1];
        
        CCLabelTTF* BACK_N = [CCLabelTTF labelWithString:@"+BACK" fontName:FONT1_1 fontSize:MENU_ITEM_SIZE]; BACK_N.color = ccBLACK;
        CCLabelTTF* BACK_S = [CCLabelTTF labelWithString:@"+BACK" fontName:FONT1_1 fontSize:MENU_ITEM_SIZE]; BACK_S.color = ccGRAY;
        CCMenuItem* iBACK = [CCMenuItemSprite itemFromNormalSprite:BACK_N selectedSprite:BACK_S target:self selector:@selector(backToMenu:)];
        
        CCMenu* back = [CCMenu menuWithItems:iBACK, nil];
        back.position = ccp(CENTER_X-115, CENTER_Y-150);
        [self addChild:back z:3];
        
   
        CCLabelTTF* LABEL_0 = [CCLabelTTF labelWithString:@"0" fontName:FONT0 fontSize:20];
        CCLabelTTF* LABEL_N = [CCLabelTTF labelWithString:@"N" fontName:FONT0 fontSize:20];
        LABEL_0.color = ccBLACK;
        LABEL_N.color = ccBLACK;
        
        CCMenuItemLabel* iLABEL_0 = [CCMenuItemLabel itemWithLabel:LABEL_0];
        CCMenuItemLabel* iLABEL_N = [CCMenuItemLabel itemWithLabel:LABEL_1];
        
        
        GAME_CREDITS = [CCMenu menuWithItems:iLABEL_0, iLABEL_N,  nil];
        
        GAME_CREDITS.position = ccp(CENTER_X, CENTER_Y*(-1));
        [GAME_CREDITS alignItemsVerticallyWithPadding:5];
        [self addChild:GAME_CREDITS z:2];
        
        [self performSelector:@selector(credits) withObject:self afterDelay:1.7];
    }
    
    return self;
}

@end


No comments:

Post a Comment

Tweet