いぬでもわかる

iOSやCocos2dxが好きでときどきAndroid。できるだけ毎日何かしら書く事を目標に頑張る。

COCOS2DX Beginer's Guid

COCOS2DX Beginer's Guidを読み進めていますが、書籍のバージョンと最新バージョンでは差異がある模様。 スクリーンサイズなどの違いによって利用するリソースファイルを使い分けたい場合、読み込むリソースディレクトリを指定します。

本だと以下のようになっていますが

CCSize screenSize = pEGLView->getFrameSize();
if(screenSize.height > 768){
  CCFileUtils::sharedFileUtils()->setResourceDirectory("ipadhd");
}
else{
  CCFileUtils::sharedFileUtils()->setResourceDirectory("ipad");
}

cocos2dx-2.1.1からsetResourceDirectoryがdeprecatedされCCFileUtils::setSearchPathを使用するようになっています。 setSearchPathはstring型のベクタークラスを引数にとります。

std::vector<std::string> resDirOrders;
if (screenSize.height > 768)
{
    resDirOrders.push_back("resources-ipadhd");
}

また、ファイルパスの取得方法も変わっています。 オーディオファイルの読み込みは、CCFileUtils::fullPathFromRelativePathを使ってファイルのパスの取得を行っていましたが、

SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("background.mp3"));
    SimpleAudioEngine::sharedEngine()->preloadEffect( CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("bombFail.wav") );

fullPathFromRelativePathがdeprecatedされCCFileUtils::fullPathForFilenameでのパスの取得に成っています。

SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic((CCFileUtils::sharedFileUtils()->fullPathForFilename("background.mp3")).c_str());
SimpleAudioEngine::sharedEngine()->preloadEffect((CCFileUtils::sharedFileUtils()->fullPathForFilename("bombFail.wav")).c_str());