[cocos2d-x 3.6] 포코팡류 게임 만들기~!

     




요즘 회사에서 리눅스와 C만 하다보니 다른 프로그래밍을 다 까먹었더군요.. 역시 프로그래밍은 오래쉬면 다 잊어버리는듯.. 물론 다른것들도 오래안하면 잊어버리지만요 *^^*


주 관심사였던 모바일프로그래밍을 다시 접해보기 위해 어떤것부터 할까 고민하다가 cocos2d-x를 활용한 간단한 미니게임을 만들어보려고 합니다. 물론 이전에 만들어보려고 했던 게임이 있었으나.. 상당히 큰 프로젝트 였기에 회사일과 병행하면서 하기는 힘들 것 같더라구요. 그래서 간단한 미니게임을 하나 만들어보려고 합니다. 이전에 유행했던 포코팡을 따라한 게임을 만들계획입니다.


오랜만에 코코스를 다운받으려고 홈페이지에 들어가니 벌써 3.6버전이더군요.




3.2 alpha를 쓴게 엇그제 같은데.. 벌써 3.6!!!!

하.. 또 많이 바꼈을꺼라 예상하면서 다운받았습니다.


프로젝트 만드는 방법도 까먹었지만.. 이전에 포스팅해놓은 것을 참고해서 완료! ( 프로젝트 만드는 법 바로가기 )


자 이제 프로젝트도 만들었고 본격적으로 시작하겠습니다. 기본적인 베이스는 http://horns.tistory.com/ 에서 참고했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return UIInterfaceOrientationIsPortrait( interfaceOrientation );
}
 
// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead
- (NSUInteger) supportedInterfaceOrientations{
#ifdef __IPHONE_6_0
    return UIInterfaceOrientationMaskAllButUpsideDown;
#endif
}
 
- (BOOL) shouldAutorotate {
    return NO;
}
cs


가장 먼저 수정한것은 화면입니다. 코코스 기본프로젝트는 화면이 가로(Landscape)모드로 되어있기 때문에 세로로 고정시키기 위해 Portrait로 바꿔줍니다. 프로젝트/ios/RootViewController.mm에서 위와같이 수정해줍니다. 수정한 부분은 3번째줄에서 UIInterfaceOrientationIsLandscape에서 Portrait로 바꾸고, showldAutoraotate를  NO로 바꾸었습니다. shouldAutorotate는 디바이스가 회전할 때 자동으로 화면이 회전되는지 설정하는 메소드입니다. 화면을 세로로 고정할 계획이기에 NO값으로 바꾸었습니다.


화면을 고정했으니 배경그림을 넣어야겠군요.




그림은 위와같은 그림을 씁니다. 그림파일을 Resource폴더에 넣은다음 불러와야겠죠?


배경을 추가하는것은 간단합니다. 뭐 단순히 그림을 추가하는 루틴이지만 큰그림을 사용하면 그게 배경이 되겠죠?


1
2
3
4
5
6
7
8
//---------------배경화면 초기화 함수--------------------
void HelloWorld::initBG()
{
    auto imgBG = Sprite::create("game_back.png");
    imgBG->setPosition(Point(screenSize.width/2,screenSize.height/2));
    this->addChild(imgBG);
    
}
cs


메인에서 그냥 선언해도 되지만 나중에 어떻게 바뀔지 모르니 분리를 했습니다. 기능별로 메소드를 분류하는 것은 프로젝트진행의 기본이죠 ^~^. 2.x버전에서는 CCSprite로 선언해야 하지만 3.x부터 auto를 사용할 수 있습니다. auto를 사용하면 메모리관리도 알아서 해주니 참~~편해용~


여기서 setPosition을 화면 중앙으로 한 이유는 Sprite선언시 기본 앵커포인트가 그림의 중앙이기 때문입니다. 즉 그림을 표시하는 기준점이 그림의 중앙이기때문에 그림을 화면중앙에 위치시키면 화면에 꽉차게 위치시킬 수 있습니다.




구동화면입니다. 배경그림이 나타나는 것을 볼 수 있습니다.


그런데~!!! 자세히보니 양옆이 조금씩 짤리는 것 같군요... 아마도 처음 만드신분은 옵티머스G를 기준으로 한다고 하셔서... 해상도가 거기에 맞춰진듯 싶군요. 저는 아이폰6 해상도에 맞추고 싶은데..... 이미 그림이 만들어졌으니 그림에 맞춰볼까요? 그림은 1280x768 해상도를 가지고 있습니다.


( 해상도 조절 바로가기 )


Appdeligate.cpp에서 해상도를 고정시키면 그림이 꽉차게 나오는 것을 볼 수 있습니다.




짜안~~~~~

배경그림 넣기까지 완료~!

반응형

댓글

Designed by JB FACTORY