'IPhone Project'에 해당되는 글 9건

  1. 2011.05.31 ShootingDemon _ iphone Game
  2. 2011.03.20 ShootingDemon _ 2010.03.20 Ver
  3. 2010.12.23 DBTool
  4. 2010.10.09 MapEditer Lock기능 추가
  5. 2010.10.04 ProjectDB_MapEditer
  6. 2009.10.27 cocos2d
  7. 2009.10.25 cocos2d - Menu
  8. 2009.10.25 cocos2d의 구성
  9. 2009.10.25 cocos2d 개발 환경 설정
2011.05.31 15:30


ShootingDemon 입니다



신고
Posted by 우엉 여왕님!! ghostkyow
2011.03.20 23:32


출시가 미뤄졌습니다ㅎ
신고
Posted by 우엉 여왕님!! ghostkyow
2010.12.23 17:39


DBTool
아이템 및 캐릭터 데이터를 관리 하기 위해서 만든 툴입니다.(엑셀 자동화를 이용한 데이터 관리)
최종적으로 만들어진 데이터는 바이너리로 뽑힙니다.

기능
 - 엑셀 불러오기
 - 시트 선택하기
 - 시트 내에 분류 없이 All 탭에 모두 셋팅
 - 시트 내에서 Y축 1번 쪽 처음부터 끝까지 분류 나눔
 - 분류중 3번째 분류임 Category로 탭 분류(무기, 머리, 갑옷 등...)
 - 분류된 탭에 각각 셋팅
 - 수정된 엑셀 저장
 - 등록된 아이템으로 캐릭터 편집 가능 
 - 등록된 아이템 바이너리로 익스포트
 - DX랑 연동(3D, 2D든 SpriteMgr, AnimationMgr 등 편집 하면 변경 가능 | 현재는 2D만 지원)
 - 하단 우측에 아이템 수치 합산 표시
 - Undo 기능 추가

추가할 기능
 - 하단 좌측 그림에 아이템 이미지 인덱스 띄울 예정
 - 오른쪽 이름 위에 장비로 조합된 캐릭터 띄울 예정

신고
Posted by 우엉 여왕님!! ghostkyow
2010.10.09 00:23


추가 기능 :
 오브젝트 - Lock

MFC 의 ComboBox로 선택한 오브젝트를 Lock & UnLock을 할수있다.
Lock UnLock을 하는 이유는 선택 되었을때 좌표 이동을 방지 하기 위해서입니다.

음 요샌 툴 제작할 시간이 없네요...

회사가 야근 철야 야근 철야라서 ;ㅁ;


신고
Posted by 우엉 여왕님!! ghostkyow
2010.10.04 23:34


ProjectDB _ MapEditer

용도 : 아이폰에서 실행할 게임의 맵 및 이벤트 및 캐릭터 배치 툴

내용 : 툴에서 맵을 뽑아서 데이터를 저장하고 그 데이터를 아이폰에서 읽어들여서, 스테이지 를 불러올 예정이다.

현재 시작한지 2일 되었습니다.

신고
Posted by 우엉 여왕님!! ghostkyow
2009.10.27 01:22
음 HiFramework와 비슷한데...?

좀더 좋고 체계적인 구조 같다.

Direction이 Kernel과 비슷한 부분이 많다.

뭐 어쨋건

사용할때는 cocos2d에 있는 Layer나 Scene를 상속받아서 이벤트를 발생 시키거나 처리 해줘야겠다.
신고
Posted by 우엉 여왕님!! ghostkyow
2009.10.25 20:47

1 메뉴 만들기

1.1 기본 메뉴

Cocos2d에서 메뉴 관련 클래스는 Menu, MenuItem, MenuItemFont, MenuItemAtlasFont, MenuItemFont, MenuItemImage, MenuItemToggle이 있다. 이 중에서 기본적으로 사용하는 것은 Menu, MenuItem, MenuItemFont 정도이고, 다음에 설명할 이미지를 사용한 메뉴를 만들 때에는  MenuItemImage 클래스를 사용한다.

기본 메뉴는 일반적인 글씨를 사용해서 메뉴를 생성하는 것이다. 글씨를 사용하기 때문에 어떤 폰트의 어떤 크기를 사용할지를 미리 설정해야 한다. 그러기 위해서 다음과 같이 MenuItemFont를 설정해 둔다.

    [MenuItemFont setFontSize:30];
    [MenuItemFont setFontName: @"Courier New"];

여기서 setFontSize와 setFontName은 static변수이기 때문에 한번 설정해 놓으면 다시 변경하기 전까지 계속 같은 값을 참조할 수 있다.
이제 이 폰트를 사용하는 메뉴는 다음과 같이 생성한다.

    MenuItem *item1 = [MenuItemFont itemFromString: @"Start" target:self selector:@selector(menuCallback:)];

itemFromString 에 표시할 메뉴의 내용을 target에는 메뉴가 click되었을 경우에 호출된 메소드를 가지고 있는 클래스의 인스턴스를, selector에는 메뉴가 click되었을 경우에 호출된 메소드의 주소를 입력해 준다. 메소드의 주소는 @selector를 통해서 가져온다.

이렇게 만들어진 MenuItem *item1을 Menu에 추가하고 다시 이 Menu를 화면에 표시할  Layer에 추가해야 메뉴를 화면에 출력할 수 있다.

    Menu *menu = [Menu menuWithItems: item1, nil];

    [someLayer addChild: menu];

메뉴는 위와 같이 menuWithItems를 사용해서 각각 생성된 MenuItem의 하나 하나 넣어주고 마지막을 nil로 채워주면 해당 값들이 Array형태로 차례로 입력되어져서 화면 출력에 사용된다. 간단하지 않은가? 그런데 여기서 끝나는 것이 아니라 이제 Start라는 메뉴를 만들었는데 이 메뉴가 click 되었을 경우에 호출될 메소드를 구현해 주어야 한다. 위에서 menuCallback 을 호출하도록 했으니까. 다음과 같이 menuCallback 메소드를 만들어 준다.

-(void) menuCallback: (id) sender
{
    NSLog(@"called start menu");
}


1.2 이미지 메뉴 만들기

이미지 메뉴는 MenuItemImage를 사용해서 정의할 수 있다. 이미지 메뉴를 사용하기 위해서는 일반 이미지와 메뉴가 선택되어져서 눌려졌을 경우의 이미지가 있으면 된다. 추가적으로 비활성화 되었을 경우에 보여질 이미지도 추가할 수 있다.

    MenuItemImage *item1 = [MenuItemImage itemFromNormalImage:@"normalImage.png" selectedImage:@"selectedImage.png" target:self selector:@selector(menuCallbackBack:)];

normalImage.png는 일반적으로 보여질 이미지를 selectedImage.png는 click되었을 경우에 보여질 이미지를 입력해 준다. target은 기본 메뉴에서와 동일하게 click되었을 경우에 호출될 메소드가 있는 클래스의 인스턴스를 selector를 호출될 메소드명을 입력한다. 이 메뉴도 일반 메뉴와 동일하게 [Menu menuWithItems:]를 통해서 입력한다.

1.3. 토글 메뉴

토 글 메뉴는 MenuItemToggle 클래스를 사용한다. MenuItemToggle클래스는 하나의 컨테이너로 기본 MenuItem 를 배열로 입력받아서 매번 click시마다 순서대로 다음 메뉴를 표시하게 해준다. 예를 들어서  "ON", "OFF"를 각각 표시하는 메뉴일 때 다음과 같이 사용하면 된다.

    [MenuItemToggle itemWithTarget:self selector:@selector(menuCallback:) items:
        [MenuItemFont itemFromString:@"ON"],
        [MenuItemFont itemFromString:@"OFF"], nil];

그 리고 여기서 callback으로 호출되는 -(void)menuCallback:(id)sender 에서 sender는 현재 연결된 MenuItemToggle이 입력된다. 그리고 [sender selectedItem]를 호출하면 현재 click을 통해서 변경된 MenuItemFont가 반환된다. 그러니까 다시 말을 하자면, ON일 때 click을 하면 OFF로 변경이 되는데 이 때 [sender selectedItem]으로는 [MenuItemFont itemFromString:@"OFF"] 로 생성된 클래스가 반환된다. ^^ 설명이 잘되었는지 모르겠다.


2. 설정하기

등록된 MenuItem들은 위지를 조절할 수 있고, 수직, 수평정렬을 할 수 있고 메뉴의 행과 열의 개수도 다음과 같은 메소드들을 사용해서 설정할 수 있다.


2.1 출력 위치 조절

메뉴는 기본적으로 스크린의 가운데를 기점으로 상하 또는 좌우로 동일한 간격으로 메뉴들이 위치하게 된다. 그러므로 메뉴를 특정한 위치에 시키고 싶다면 Menu의 setPosition의 메소드를 사용하거나 position을 직접 제어해서 Menu의 중앙의 값을 설정하면 된다.
만약 각각의 MenuItem들을 각기 다른 위치에 위치시키고 싶다면 Menu에 MenuItem을 하나만 입력하고 각각의 위치를 설정하면 된다.

다음 이미지는 메뉴를 구성할 때 간격과 위치에 대한 설명이미지이다.



2.2 수직 정렬

수직 정렬은 alignItemsVertically으로 postion값을 중심으로 KDefaultPadding(5) 간격으로 나열된다.
각각의 간격을 다른 값으로 하려면 alignItemsVerticallyWithPadding:(float) padding 메소드로 간격값을 실수로 입력하면 된다



2.3 수평 정렬

수평 정렬은 alignItemsHorizontally 메소드로 수직정렬과 마찬가지로 position을 중심으로 kDefaultPadding간격으로 나열된다.
이 역시 각 간격은 alignItemsHorizontallyWithPadding: (float) padding 메소드로 간격값을 변경시킬 수 있다.



2.4 Column 개수 설정

만약에 다음 그림과 같이 일률적으로 정렬만 되는 메뉴를 행마다 다른 수로 정렬시키고 싶다면 alignItemsInColumns: (NSNumber *) columns, ... 메소드를 사용해서 각 행마다 개수를 다음과 같이 입력한다.

    [menu alignItemsInColumns:
     [NSNumber numberWithUnsignedInt:2],  // Sound, Music
     [NSNumber numberWithUnsignedInt:2],  // On, On
     [NSNumber numberWithUnsignedInt:2],  // Quality, Volume
     [NSNumber numberWithUnsignedInt:2],  // High, 66%
     [NSNumber numberWithUnsignedInt:1],  // Go Back
     nil
    ]; // 2 + 2 + 2 + 2 + 1 = total count of 9




2.5 Row 개수 설정

Row도 Column과 동일한 방법으로 설정할 수 있다. 이 부분은 각자 연구해 보기 바란다.



3. 응용하기


3.1 이미지 메뉴 크기 변경

이미지 메뉴의 크기는 CocosNode에 정의된 속성인 scaleX와 scaleY를 이용하면 된다. 각 값은 실수값으로 1.0f는 실제 배율의 크기이고 이 값보다 작을 경우에는 작게 클 경우에는 큰 이미지로 변경된다.

     MenuItemImage *item1 = ...;
    item1.scaleX = 1.5f
    item1.scaleY = 0.5f

scale = 1.0f 기본 이미지
scaleX = 0.5f
scaleY = 0.0f
scaleX = 1.5f;
scaleY = 1.5f;


3.2 메뉴 비활성화 시키기

메뉴를 비활성화 시키기 위해서는 isEnabled를 NO로 설정하면된다.

    MenuItem *item1 == ...;
    item1.isEnabled = NO;


메뉴를 비활성화 시키면 다음 그림과 같이 선택도 안되지만 Opacity값이 줄어든채 색으로 설정된다.

(비활성화 된 경우)
(활성화 된 경우)


3.3 종료 메뉴 만들기

메뉴가 선택되었을 때 다음을 호출하면 어플이 종료된다. 그런데 이 명령은 iPhone 2.2.1이하에서만 동작한다. 3.0에서는 동작하지 않는데 아는 분은 답글 부탁한다.

    [[Director sharedDirector] end];
    if( [[UIApplication sharedApplication] respondsToSelector:@selector(terminate)] )
        [[UIApplication sharedApplication] performSelector:@selector(terminate)];



-출처 - http://appsnet.co.kr/bbs/cocos2d/1130

신고
Posted by 우엉 여왕님!! ghostkyow
2009.10.25 13:49

1. Cocos2d의 특징


1.1 cocos2d는 기본적으로 cocoa frame의 UIView 기반위에서 작동하는 거라서 하나의  UIView와 UIViewController를 AppDelegate에 연결하고 사용하면 된다. 이는 다른 app과는 다른 구조를 가지고 있어서 약간 혼란스러울 수도 있다. 하지만 하나의 UIView만 사용한다는 것만 기억하고 개발을 한다면 문제없을 것이다.

1.2 cocos2d는 OpenGL을 사용하므로 UIView와 다른 좌표계를 가지고 있다. UIView는 좌측 상단이 (0,0)이어서 오른쪽으로 가면서 x값이 증가하고 아래로 가면서 y값이 증가한다. 하지만 cocos2d는 좌측 하단이 (0,0)이므로 위로 갈수록 y값이 증가한다.

1.3 화면의 개체를 표시하거나 이동시킬 때 position이 일반적인 경우와 같은 왼쪽위가 아니라 중심이기 때문에 주의를 기울여서 계산을 해야한다.


2. Cocos2d의 구조

cocos2d는 CocosNode를 기준으로 Director, Scene, Layer, Sprite의 계층적인 포함관계를 가지고 Action 클래스를 이용해서 애니메이션을 구현한다.


Director > Scene > Layer > Sprite

2.1 CocosNode

cocos2d의 모든 클래스는 CocosNode를 최상위 클래스로하고 상속한다. cocos의 NSObject와 같이 클래스간의 최상위 부모로 사용되는 것이다. 이 클래스는 position, scale, visible과 같은 속성들을 가지고 각 오브젝트간의 계층을 구성할 수 있는 add, remove, reorder를 가지고 있다. 또한 하나의 오브젝트가 각기 자체의 schedule을 가지고 있어 개별적으로 작동시킬 수 있다.

2.2 Director

Cocos2d 에서 신과 같은 존재로 Cocos2d의 세계를 관리하고 관장하는 클래스가 Director이다. 신과 같은 역활을 하지만 Cocos2d가 하나의 영상물을 만드는 것과 비슷하므로 Director라고 이름을 붙였을 것 같다. 여하튼 Director는 말 그대로 영화감독처럼 게임의 흐름을 Scene을 통해서 관리한다. 그리고 Singleton Pattern으로 오로지 하나의 유일한 Director객체를 [Director sharedDirector]로 호출해서 실행할 수 있다.

2.3 Scene

Scene 은 Director의 명령을 받아서 하나의 화면을 구성하게 한다. 게임에서 하나의 배경을 맡는다고 생각하면 될 듯 싶다. 각각의 다른 배경이 필요하다면 서로 다른 Scene을 구성해서 장면을 전환하면 된다. 처음 장면의 시작은 [[Director sharedDirector] runWithScene:scene]; 을 호출해서 실행하고 다음 장면으로 변환은 [[Director sharedDirector] pushScene:nextScene]; 으로 화면을 전환시킬 수 있다. 그런데 메소드명을 자세히 보면 알 수 있듯이 각 Scene의 오브젝트들은 queue로 관리되어 진다. 이전 Scene으로 다시 이동을 하고 싶으면 현재의 Scene을 정리하고 popScene을 호출하면 된다.

2.4 Layer

Layer는 Scene에 포함되는 세부 소품이나 세트라고 볼 수 있다. 두 클래스의 역활을 비슷하지만 Layer와 Scene의 차이점은 사용자의 이벤트를 입력받을 수 있느냐 없느냐의 차이라고 볼 수 있다. Scene은 터치 이벤트를 수신할 수 없지만 Layer는 TouchEventsDelegate 프로토콜을 구현함으로써 터치 이벤트를 수신할 수 있다.

2.5 Sprite

Sprite 는 영화의 최하위 단에서 실제로 움직이고 작동하는 배우나 물체의 단위이다. 대부분의 화면에서 움직이는 것은 Sprite라고 보면 이해하기 쉬울 것이다. Sprite는 보통 이미지이기 때문에 이미지로 생성되는 부분에서 특화되어 있다. 가장쉽게 생성하는 방법도 initWithFile로 이미지 파일을 resource에서 직접 로드하게 하는 방법이다. 보통 png 이미지를 사용한다. 또한 PowerVR 3D 가속칩에 최적화된 PVRTC 이미지 파일도 사용할 수 있다.

2.6 Action

Action 은 보통 CocosNode에 움직임을 주게하는 클래스이지만 주로 Sprite를 움직이게 하는데 사용한다. Action은 한번만 실행되는 InstanceAction, 지속적으로 일정시간동안 반복되는 IntervalAction, 그리고 일정시간동안 일정한 패턴을 반복하는 RepeatAction으로 구성된다. 다음은 각각 Action의 종류들이다. 차차 이것들이 어떻게 작동하는지를 배워볼 것이다.

  • Trasformation Actions : Move, Rotate, Scale, Jump, etc.
  • Composable Actions : Sequence, Spawn, Repeat, Revers.
  • Ease Actions : Exp, Sin, Cubic, etc.
  • Mics Actions : CallFunc, OrbitCamera


3. Hello World!

지금까지 Cocos2d의 기본을 클래스들을 알아보았다. 그러면 이것들을 가지고 프로그래밍의 입문인 "Hello World of Cocos2d."를 화면에 출력해 보자.


첫 강의에서 만든 cocos2d 를 선택해서 HelloCocos2d 프로젝트를 생성해 보자.


Cocos2dAppDelegate.m에서 다음의 내용을 추가해 보자.


----------------------------------------------------------------


#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];
    Label *helloLabel = [Label labelWithString:@"Hello World of Cocos2d."
                                      fontName:@"Helvetica" fontSize:20.0f];
    helloLabel.position = ccp(150, 200);    // 위치 지정(가운데를 글자의 가운데 부분을 위치시켜야함)
    [helloScene addChild:helloLabel];
    
    // HelloScene을 실행
    [[Director sharedDirector] runWithScene:helloScene];
    
    // Override point for customization after application launch
    [window makeKeyAndVisible];
}


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


@end

----------------------------------------------------------------

(Zeroboard에서 소스답게 보이는 법을 모르겠어요.ㅜㅜ)

bold체로 굵게 한 부분이 추가된 부분이다.



이제 build and Go를 실행해 보자.
화면에 다음과 같이 실행되면 제대로 된 것이다. 잘 실행이 안된다면 warning 경고를 무시하지 말고 잘 풀어본다. Objective-C는 동적인 객체 언어라서 warning 이라도 컴파일은 되지만 실행시에 문제가 발생할 수 도 있기 때문이다.



-출처 : http://appsnet.co.kr/bbs/cocos2d/803
신고
Posted by 우엉 여왕님!! ghostkyow
2009.10.25 13:45

cocos2d는 openGL을 사용하서 iPhone/IPot touch용 게임을 개발하기에 편리한 API이다. Menu, sprite, tilemap등 편리한 여러가지 기능을 제공하며, Chipmunk를 통해서 물리엔진까지 쉽게 사용할 수 있다. 자세한 내용과 최신 버젼은 cocos2d-iphone 사이트에서 확인할 수 있다.

(현재 만들 개발환경은 cocos2d 0.7.3버젼을 가지고 iPhone SDK 3.0에 최적화된 환경입니다.)


cocos2d-iphone은 소스파일을 직접 추가해서 개발을 할 수도 있지만 라이브러리를 링크하는 방식으로 개발할 수도 있다. 처음 개발을 할 때 라이브러리의 작동방식을 공부하기를 원한다면 소스를 직접 추가해서 하는 방식을 추천하지만 그렇지 않다면 라이브러리로 개발하는 것이 편리하다. 여기서는 라이브러리를 링크해서 개발 환경을 구축하는 것을 알아보겠다

1. 라이브러리 컴파일 하기

cocos2d-iphone에서 최신 버젼의 소스를 다운로드한다. iPhone OS 3.0 으로 변경되면서 많은 부분이 좀 까탈스러워졌다. 그러므로 3.0에서도 지원을 하게원한다면 0.7.3 이상의 버젼을 이용하는 편이 좋다. 다운로드한 소스를 압축을 풀면 Xcode의 프로젝트로 열수 있는 xcodeproj확장자를 실행한다.


Xcode SDK에서 좌측상단에 보녕 개발 환경을 설정할 수 있는 Select box가 있다. 여기서 iPhone Device 2.2.1 - Release - cocos2d를 선택한 다음에 Build(Command-B)를 한다. Build and Go가 아니다. 좀 기다리면 우측 하단에 진행되는 표시가 Success라고 표시될 것이다. 이러면 라이브러리 컴파일이 된것이다. 


이와 같이 iPhone Device 2.2.1 - Release - Chipmunk, iPhone Simulator 2.2.1 - Release - cocos2d, iPhone Simulator 2.2.1 - Release - Chipmunk를 컴파일 해준다.  Chipmunk는 단순히 openGL의 간단한 라이브러리가 아닌 물리엔진등을 사용하는 라이브러리이다. 

2. 라이브러리 및 참조 파일들 복사

1) 라이브리러 복사

라이브러리를 참조하기 위해서 라이브러리 디렉토리를 다음의 위치에 만든다. /Developer/Library/Cocos2d 앞에서 컴파일한 라이브러리 파일들은 모두 Build 디렉토리에 존재하게 된다. 이 라이브러리 파일들을 Device와 Simulator에 따라서 다음과 같이 Release-iphoneos는 Device에 Release-iphonesimulator는 Simulator에 복사한다.

         



2) 헤더파일 복사

압축을 푼 cocos2d-iphone디렉토리에 보면은 cocos2d라는 디렉토리가 있는데 여기에 cocos2d의 헤더파일들이 들어 있다. Support디렉토리까지 통채로 /Developer/Library/Cocos2d/Include에 복사한다.




3)  fps_images.png 복사

이제 마지막으로 fps의 진행등을 숫자로 표시할 수 있는 이미지를 기본으로 추가해줘야 한다. Resouce하위에 fps_images.png라는 파일을 찾을 수 있을 것이다 이 파일을 /Developer/Library/Cocos2d/Images에 복사해준다.




3. Xcode 설정

이제 호출할 수 있는 라이브러리 준비를 마쳤고 실제로 Xcode 에서 개발할 수 있는 환경을 설정해보자. 먼저 Xcode의 새로운 프로젝트를 생성해서 Window-base application을 선택해서 Cocos2d라는 프로젝트명으로 프로젝트를 생성한다.





1) Path 추가

cocos2d의 헤더와 라이브러리가 있는 디렉토리를 Path로 설정해줘야 참조를 할 수 있으므로 Groups & Files에서 제일 위에 있는 Cocos2d를 선택해서 마우스 오른쪽 키를 눌러 Get Info를 선택한다. 또는 SDK 상단의 Info 아이콘을 선택한다.



Project "Cocos2d" Info 다이얼로그에서 build탭을 선택한다. 하단을 스크롤하다보면 Search Path의 Header Search Paths와 Library Search paths를 찾을 수 있다.


여기서 Header Search Paths를 더블크릭해서 Cocos2d의 헤더파일이 있는 디렉토리(/Developer/Library/Cocos2d/Include)를 추가해 준다. 추가할 때 Support도 참조할 수 있도록 recursive를 선택한다.


그리고 Library Search Paths에도 라이브러리가 있는 디렉토리를 추가해 준다. 이 때에는 하위 디렉토리에서 참조할 라이브러리가 없으므로 recursive를 선택할 필요는 없다.



개발완료된 후에 배포를 할 때에는 Device로 컴파일을 해야 하므로 Release Configuration에서는 Library Search Paths를 /Developer/Library/Cocos2d/Device로 설정해 준다. (Release Configuration은 상단 Select Box에서 선택할 수 있다.)







 2) Link 추가

Project "Cocos2d" Info 다이얼로그에서 스크롤을 하다보면 Linking의 Other Linker Flags를 볼 수 있는데 여기서 외부 참조할 라이브러리를 입력할 수 있다. 그런데 등록할 라이브러리는 -l옵션을 사용하고 라이브러리 명이 libcocos2d.a일 때 cocos2d만 사용해서 다음과 같이 입력한다. (참고 : objective-c는 기본적으로 gcc 컴파일러를 사용하는데 gcc 라이브러리들은 lib[라이브러리명].a로 구성이 되어 진다.) 


그리고 물리엔진도 필요에 따라서 다음과 같이 추가해 준다.






3) 참조 이미지 추가
/Developer/Library/cocos2d/image에 복사한 참조 이미지를 프로젝트의 Resource Group에 추가해 준다.


4) 프레임워크 추가

cocos2d가 OpenGL을 참조하는 API이므로 iPhone SDK에서 제공하는 그림을 그리는 QuartzCore와 OpenGLES를 추가한다.


Group & Files->Target->Cocos2d를 마우스 오른쪽 키를 크릭하거나 상단메뉴에서 info아이콘을 크릭해서 Target "Cocos2d" Info 다이얼로그를 띄운다.





여기서  Linked Libraries 아래에 있는 +를 크릭해서 OpenGLES.framework와 QuartzCore.framework를 선택해서 추가한다.




5) MainWindow.xib 설정변경

iPhone OS 3.0으로 변경되면서 전 버젼에서는 무시했던 것들을 세세하게 검사를 하기 때문에 2.2.1에서는 잘 실행이되지만 3.0에서는 화면이 하얗게만 표시되는 경우가 있다. 이는 2.2.1에서는 Interface Builder에서 연결을 설정했더라고 소스에서 재코딩을 하면 무시되었던 것이 우선순위가 interface Builder설정으로 변경된 것 같다.(이것은 어디까지나 나만의 생각이다. ^^;;)


그러므로 Window-base Application으로 프로젝트를 생성하면 MainWindow.xib에서 기본 바탕화면이 하얀 Window가 App Delegate에 연결되어 있기 때문에 아무리 하단에 그림을 그리더라도 하얀 window가 덮어 씌워버리기 때문이다. 그러므로 이를 풀어줘야 한다.


그러기 위해서 Resouces의 MainWindow.xib를 더블크릭해서 Interface Builder를 연다. 여기서 Window를 마우스 오른쪽 키로 크릭하면 다음과 같이 Delegete와 연결되어 있는 것을 확인할 수 있다. 이를 과감하게 delete로 지워준다. 그리고 저장한다.

이제 기본 설정을 완료했다. Build and Go 를 해보자 시커먼 화면이 잘 뜰 것이다.
이제부터 여러분이 원하는 것을 개발하도록 하자.




4. Xcode 템블릿 만들기

위와 같은 설정을 매번 Cocos2d를 사용하는 프로젝트를 할 때마다 설정을 해줘야 한다면 정말 귀찮을 것이다. 그래서 템플릿으로 설정을 해놓으면 Window-base Application을 선택해서 프로젝트를 생성할 수 있듯이 Cocos2d프로젝트를 생성할 수 있다.


단순히 지금까지 생성한 Cocos2d의 디렉토리 전체를 /Library/Application Support/Developer/Shared/Xcode/Project Templates/Application 하위에 복사해 준다.

그러면 다음과 같이 새 프로젝트를 만들 때 Cocos2d를 선택할 수 있을 것이다.

-출처 : http://appsnet.co.kr/bbs/cocos2d/281

신고
Posted by 우엉 여왕님!! ghostkyow

티스토리 툴바