본문 바로가기

IT

물고기 게임1

반응형

게임 제작의 중심은 주로 그림을 어떻게 표현하느냐,

뭐가 화면에 보여야 내가 제대로 만들고 있는건지 알 수 있는거 아닐까?

iPhone 게임 개발로 많이 사용되는게 cocos2D 라는 라이브러리이다.

재 0.8.1 버전까지 나온 상태다.

http://appsnet.co.kr/bbs/cocos2d


여기 개발자 포럼에 상세하게 cocos2D의 개발환경 설정부터 

애니메이션 구현까지의 강좌가 설명되어있다.

어제까지 아이폰 시뮬레이터에 메뉴를 만들어서 띄우는 것까지 해보았다.

다음은 메인 소스이다.

//
//  Cocos2DAppDelegate.m
//  Cocos2D


#import "Cocos2DAppDelegate.h"
#import "cocos2d.h"

@implementation Cocos2DAppDelegate

@synthesize window;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // UIWidow 개체를 생성
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    // Director에서 사용할 View등록
    [[Director sharedDirector] attachInView:window];
    
    // HelloScene 생성
    Scene *helloScene = [Scene node];
    
    // hello world 라벨 만들기
    Label *helloLabel = [Label labelWithString:@"Hello World of Cocos2d."
                                      fontName:@"Helvetica" fontSize:20.0f];
    helloLabel.position = ccp(150,200);    // 위치 지정(가운데를 글자의 가운데 부분을 위치시켜야함)
    //[helloScene addChild:helloLabel];
    //초록색 코드는 맨처음 헬로우 월드 찍어보는 코드이고 라벨 사용법을 알기 위해서 코드를 남겨 놓았음


    // 이 부분을 강좌 잘 따라해가면서 만들어봤음 전체 소스가 없어서 고민해서 만드느라 시간이 상당히 오래걸렸다.
    // 기본 메뉴 아이템 설정
    [MenuItemFont setFontSize:30];
    [MenuItemFont setFontName: @"Courier New"];
    
    // 메뉴 아이템
    MenuItem *item1 = [MenuItemFont itemFromString: @"시작" target:self selector:@selector(menuStartCallback:)];
    MenuItem *item2 = [MenuItemFont itemFromString: @"환경설정" target:self selector:@selector(menuConfigCallback:)];
       
    
    // 메뉴를 담는 레이어(메뉴는 배열 형식)
    Menu *menu = [Menu menuWithItems: item1,item2, nil];
    
    //[menu alignItemsInRows:(NSNumber *)2];
    [menu alignItemsInRows:[NSNumber numberWithInt:2],nil];
    
    // 메뉴의 위치설정
    //menu.position = ccp(100,300);
    
    // 메뉴들의 위아래 간격 조절
    //[menu alignItemsVerticallyWithPadding:100.0f];
    


    // 씬에 메뉴를 추가(메뉴가 레이어를 상속받기때문에 다른 레이어 추가없이 추가 가능)
    [helloScene addChild:menu];

    // HelloScene을 실행
    [[Director sharedDirector] runWithScene:helloScene];
    
    // Override point for customization after application launch
    [window makeKeyAndVisible];
}
                        
-(void) menuStartCallback: (id) sender
{
    NSLog(@"called start menu");
}                        

-(void) menuConfigCallback: (id) sender
{
    NSLog(@"called config menu");
}

- (void)dealloc {
    [window release];
    [super dealloc];
}


@end



빌드하고 실행하면 다음과 같이 시뮬레이터에 코드에 작성한 것처럼 

시작과 환경설정이란 메뉴가 나타난다.

왼쪽화면은 메뉴를 클릭했을때 콜백메소드를 제대로 호출하는지 확인하기 위해 띄운 콘솔창

위 스샷과 같이 메뉴를 누를때마다 콜백메소드가 잘 호출되고 있는게 보인다.

일단 인트로 화면이 이렇게 구성이 되어야 하는데. 메뉴 글자부터 짤라서 이미지나 만들어 놓을까


 

반응형