// TransitMenu.m
// MyGame
//
// Created by Daniel Lee on 10. 7. 23..
// Copyright 2010 SimVerse. All rights reserved.
//
#import "TransitMenu.h"
#import "HelloWorldScene.h"
@implementation TransitMenu
+(id) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
TransitMenu *layer = [TransitMenu node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
// on "init" you need to initialize your instance
-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
if( (self=[super init] )) {
CCLabel* label = [CCLabel labelWithString:@"<<< Transit Menu >>>" fontName:@"Marker Felt" fontSize:20];
CGSize size = [[CCDirector sharedDirector] winSize];
label.position = ccp( size.width / 2 , size.height/10 );
[self addChild: label];
[CCMenuItemFont setFontSize:18];
CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"Fade" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item2 = [CCMenuItemFont itemFromString:@"FlipAngular" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item3 = [CCMenuItemFont itemFromString:@"ShrinkGrow" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item4 = [CCMenuItemFont itemFromString:@"MoveInB" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item5 = [CCMenuItemFont itemFromString:@"MoveInT" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item6 = [CCMenuItemFont itemFromString:@"MoveInL" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item7 = [CCMenuItemFont itemFromString:@"MoveInR" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item8 = [CCMenuItemFont itemFromString:@"FadeTR" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item9 = [CCMenuItemFont itemFromString:@"FadeUp" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item10= [CCMenuItemFont itemFromString:@"FlipX" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item11= [CCMenuItemFont itemFromString:@"FlipY" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item12= [CCMenuItemFont itemFromString:@"PageTurn" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item13= [CCMenuItemFont itemFromString:@"CrossFade" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item14= [CCMenuItemFont itemFromString:@" " target:self selector:@selector(displayNext:)];
CCMenuItemFont *item15= [CCMenuItemFont itemFromString:@"return Main Menu" target:self selector:@selector(displayNext:)];
CCMenu *menu = [CCMenu menuWithItems:item1, item2, item3, item4, item5, item6, item7, item8, item9, item10,item11, item12, item13, item14,item15, nil];
[menu setPosition:ccp(size.width/2, size.height/2 + 20)];
[menu alignItemsVertically];
[menu alignItemsInColumns: [NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:2],
[NSNumber numberWithUnsignedInt:1], nil];
//[self addChild:menu z:1 tag:0];
[self addChild:menu];
item1.tag = 0;
item2.tag = 1;
item3.tag = 2;
item4.tag = 3;
item5.tag = 4;
item6.tag = 5;
item7.tag = 6;
item8.tag = 7;
item9.tag = 8;
item10.tag = 9;
item11.tag = 10;
item12.tag = 11;
item13.tag = 12;
item15.tag = 14;
//*/
}
return self;
}
-(void)displayNext:(id)sender {
switch ([(CCMenuItemFont *)sender tag]) {
case 0: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFadeTransition transitionWithDuration:1 scene:sMain withColor:ccc3(255,0,0)]];
}
break;
case 1: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFlipAngularTransition transitionWithDuration:1 scene:sMain]];
}
break;
case 2: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCShrinkGrowTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 3: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCMoveInBTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 4: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCMoveInTTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 5: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCMoveInLTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 6: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCMoveInRTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 7: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFadeTRTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 8: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFadeUpTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 9: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFlipXTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 10: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCFlipYTransition transitionWithDuration:1 scene:sMain ]];
}
break;
case 11: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCPageTurnTransition transitionWithDuration:10 scene:sMain ]];
}
break;
case 12: {
CCScene *sMain = [CCScene node];
[sMain addChild:[TransitMenu node]];
[[CCDirector sharedDirector] replaceScene:[CCCrossFadeTransition transitionWithDuration:1 scene:sMain ]];
}
break;
// Main Menu로 돌아가기
case 14: {
CCScene *sMain = [CCScene node];
[sMain addChild:[HelloWorld node]];
[[CCDirector sharedDirector] replaceScene:[CCCrossFadeTransition transitionWithDuration:1 scene:sMain ]];
}
break;
default:
break;
}
}
// on "dealloc" you need to release all your retained objects
- (void) dealloc
{
// in case you have something to dealloc, do it in this method
// in this particular example nothing needs to be released.
// cocos2d will automatically release all the children (Label)
// don't forget to call "super dealloc"
[super dealloc];
}
@end