5가지 실전 게임으로 배우는 코코스2d-x(cocos2d-x) 모바일 2D 게임 개발 두번째 예제(1)

     



첫번째 예제는 코드를 다 바꾸고 나서 포스팅을 했더니.. 과정이 생각이 안나서 그냥 결과를 다 올렸습니다....ㅎㅎ 귀차니즘...


그래서 이번에 두번째 예제를 하려고 하는데, 지난번 처럼 다 하고나서 포스팅을 하면 분명 귀찮을 태고 기억도 안날태니.. 예제를 해보면서 올리겠습니다.


일단 두번째 예제이니 만큼 처음 설정 부분이 아주 생략되있더군요. 그냥 홈페이지에서 다운받은 예제코드를 import해서 실행하라고 합니다.


하지만 버전이 2.x버전 코드니 3.2에서 제대로 작동할리가!!!!!!


잘 작동하더군요............

하지만 우리는 3.2를 쓰니 3.2문법으로 바꿔보도록 합시다.....


일단! 지난시간에도 쓰였지만 사용하는 디바이스에 맞게 해상도가 다른 리소스를 사용하는 방법입니다. 지난번에는 그냥 2.x버전에서 사용하던 방법을 고대로 썻는데 3.2에서는 다르게 쓰더군요.


다음과 같이 사용합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Size screenSize = glview->getVisibleSize();
    
    
    glview->setDesignResolutionSize(screenSize.width, screenSize.height, ResolutionPolicy::NO_BORDER);
    
    
    std::vector<std::string> searchPaths;
    if (screenSize.height > 768) {
        searchPaths.push_back("ipadhd");
        FileUtils::getInstance()->setSearchPaths(searchPaths);
    }else if(screenSize.height>320){
        searchPaths.push_back("ipad");
        FileUtils::getInstance()->setSearchPaths(searchPaths);
    }else{
        searchPaths.push_back("iphone");
        FileUtils::getInstance()->setSearchPaths(searchPaths);
    }


앱델리게이트.cpp에 있는 코드입니다. 바뀐 부분은 FileUtils에서  getInstance()를 사용한다는 점입니다. 


또 배경음악을 하는 부분이 있는데 이부분 역시 GaemLayer.cpp부분에서 메소드를 통해 구현했습니다.


1
2
3
4
5
void GameLayer::initBS()
{
    SimpleAudioEngine::getInstance()->playBackgroundMusic("background.mp3");
    SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.4f);
}


initBS라는 메소드를 만들어서 init()안에서 실행시켰습니다. 간단하죠~?


그리고 배경화면을 넣기위해 다음 메소드도 추가합니다.

1
2
3
4
5
6
7
void GameLayer::createGameScreen()
{
    auto bg = Sprite::create("bg.png");
    bg->setPosition(Point(winSize.width/2,winSize.height/2));
    bg->setAnchorPoint(Point(0.5,0.5));
    this->addChild(bg);
}


자 이제 init()안에 두개의 메소드를 실행하면, 배경화면과 배경음악이 나오게 됩니다!

배경음악이 뭔가 16비트스러운게 레트로게임의 향이 물씬~


다음에는 스프라이트 이미지를 사용하는 방법을 사용할탠대, 제가 여태까지 사용한 스프라이트이미지와는 조금 다르게 사용하더라구요. SpriteBatchNode를 사용하는데, 저는 2.x에서만 쓰이는 메소드인줄 알았지만, 3.2에서도 사용이 가능합니다.


여기서부터는 다음 포스팅에 추가해서 올리도록 하겠습니다~

반응형

댓글

Designed by JB FACTORY