2013年02月13日

Cocos2d-xの画面サイズ対応と画像解像度対応(Retina/非Retina)

今日はCocos2d-xで色んな画面サイズ対応と画像解像度対応(Retina/非Retina)を調べてみました。


↓ 色んな画面サイズ対応は以下を参考にしました。

 がおまる開発ブログ
 解像度の設定:setDesignResolutionSizeを使用する
 http://gaomar.blog.fc2.com/blog-entry-5.html

本当に分かりやすいです!ありがとうございます!


そのあと画像の切り替えで大分ハマってしまいました。。。
@2x??使えないの??と。。

なんとフォルダで各画像を切り替えるらしいです。
Resources/
├── Published-iOS
│   ├── resources-iphone
│   │   ├── background.png
│   │   └── title.png
│   └── resources-iphonehd
│   ├── background.png
│   └── title.png

当然そのまんま投げ込むとpng画像が重複しているとエラーがでます。。。。

色々しらべて↓の情報で助かりました。ありがとうございます。
cocos2d-x2.0-xでRetina Display対応
http://p-monster.hatenablog.com/entry/2012/12/24/204001

なるほど!フォルダの参照を取り込めば良い様です!

20130213_cocos2dx?retina_01.png
20130213_cocos2dx_retina_02.png

そして
AppDelegate.cppの
bool AppDelegate::applicationDidFinishLaunching()に以下記述を追加しました。


CCSize resourceSize = CCSizeMake(320, 480);
CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();

std::vector<std::string> searchPaths;
std::vector<std::string> resDirOrders;

TargetPlatform platform = CCApplication::sharedApplication()->getTargetPlatform();
if (platform == kTargetIphone || platform == kTargetIpad){
searchPaths.push_back("Published-iOS"); // Resources/Published-iOS
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);

if (screenSize.height > 480){
resourceSize = CCSizeMake(640, 960);
resDirOrders.push_back("resources-iphonehd");
pDirector->setContentScaleFactor(2.f);
}else{
resDirOrders.push_back("resources-iphone");
}

CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(resDirOrders);

}else{
// iOS以外(Androidの予定)
searchPaths.push_back("Published-iOS"); // Resources/Published-iOS
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
resDirOrders.push_back("resources-iphone");
CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(resDirOrders);

}


※ Androidは非retina画像を拡大表示する方向で考えてます。。

明日はデータを管理するシングルトンみたいなものが出来ないか調べてみようと思います。
タグ:cocos2d-x
posted by itokami1123 at 23:57| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: