대부분의 게임을 시작하게되면 처음 나오는 초기메뉴를 구현해보자.
[HelloWorldScene.m]
...
// 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:@"http://simverse.tistory.com @simverse" fontName:@"Marker Felt" fontSize:20];
CGSize size = [[CCDirector sharedDirector] winSize];
label.position = ccp( size.width / 2 , size.height/8 );
[self addChild: label];
CCMenuItemFont *item1 = [CCMenuItemFont itemFromString:@"Tutorials" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item2 = [CCMenuItemFont itemFromString:@"Start Game" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item3 = [CCMenuItemFont itemFromString:@"Option" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item4 = [CCMenuItemFont itemFromString:@"High Score" target:self selector:@selector(displayNext:)];
CCMenuItemFont *item5 = [CCMenuItemFont itemFromString:@"About" target:self selector:@selector(displayNext:)];
CCMenu *menu = [CCMenu menuWithItems:item1, item2, item3, item4, item5, nil];
[menu setPosition:ccp(size.width/2, size.height/2 + 20)];
[menu alignItemsVertically];
//[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;
NSLog(@"cx:%f cy:%f", size.width, size.height);
}
return self;
}
시뮬레이터에서 보면 다음과 같은 결과 화면이 나타난다.
그후에 각 메뉴항목을 클릭했을 때의 구현은 다음 소스에서 확인하자.
-(void)displayNext:(id)sender {
NSLog(@"displayNext [tag:%i]", [(CCMenuItemFont *)sender tag]);
switch ([(CCMenuItemFont *)sender tag]) {
case 0: {
// CCScene *s1 = [CCScene node];
// [s1 addChild:[ShootGame node]];
// [[CCDirector sharedDirector] replaceScene:[CCFlipXTransition transitionWithDuration:1 scene:s1]];
}
break;
case 1: {
// CCScene *s1 = [CCScene node];
// [s1 addChild:[GameScene node]];
// [[CCDirector sharedDirector] replaceScene:[CCFlipXTransition transitionWithDuration:1 scene:s1]];
}
break;
default:
break;
}
}
'아이폰개발 > cocos2d' 카테고리의 다른 글
[cocos2d] Scene 추가 및 화면 전환효과 구현 (0) | 2010.07.24 |
---|---|
[cocos2D]주요 클래스 검토 : CCScene, CCDirector, CCLayer, CCScene, CCNode (0) | 2010.07.18 |
[cocos2d] Hello World 분석 (1) | 2010.07.18 |
[cocos2d] 준비 및 설치하기 (1) | 2010.07.15 |