(cocos2d-x 3.2 버전 기준)
1. cocos2d-x기반의 빈 프로젝트(hello world)를 만듭니다.
2. AppController.mm의 didFinishLaunchingWithOptions 함수 안에
GLView를 생성하고 싱글톤 객체인 cocos2d::Director를 구동하는 코드가 있는데
여기서 이것들을 하면 안되니 모두 지워버립니다. ㅎㅎ
나머지 applicationDidEnterBackground, applicationWillEnterForeground 등의 함수안의 코드는 그냥 그대로 둡니다.
3. 새로운 컨트롤러(이하 CustomViewController)를 만들고 게임뷰를 담을 UIVIew(이하 viewGLViewContainter)객체를 하나 만들어 놓습니다.
4. CustomViewController 소스에서 아래 두 함수를 통해 게임뷰를 생성하여 viewGLViewContainter붙이고 정리하는 코드를 추가합니다.
- (void)viewWillAppear:(BOOL)animated
- (void)viewWillDisappear:(BOOL)animated
소스파일(CustomViewController.mm 소스 파일)에 아래 2개의 헤더를 import합니다.
- cocos2dx의 cpp코드를 사용해야 하니 mm 파일로 만들어야 합니다.
#import "cocos2d.h"
#import "CCEAGLView.h"
viewWillAppear함수에 아래 코드를 추가합니다.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Init the CCEAGLView
CCEAGLView *eaglView = [CCEAGLView viewWithFrame: self.viewGLViewContainter.bounds
pixelFormat: kEAGLColorFormatRGBA8
depthFormat: GL_DEPTH24_STENCIL8_OES
preserveBackbuffer: NO
sharegroup: nil
multiSampling: NO
numberOfSamples: 0];
[self.viewGLViewContainter addSubview:eaglView];
cocos2d::GLView *glview = cocos2d::GLView::createWithEAGLView(eaglView);
cocos2d::Director::getInstance()->setOpenGLView(glview);
cocos2d::Application::getInstance()->run();
}
viewWillDisappear함수에 아래 코드를 추가합니다.