cocos2d-iphone 2.0でのHD画像を用意しない簡単なRetina対応

(ここではiPhone4SまでのRetina対応に関する知見を書きます。
アスペクト比の変わるiPhone5でどうすべきかは未調査です。)

cocos2d-iphone 2.0でのRetina対応ですが、
Retina向けの高精細画像では以下のようにファイル名を変更するだけです。

Retina用:xxx.png
Retina用:xxx-hd.png

iPadの場合はxxx-ipad.png、iPadRetina用にはxxx-ipadhd.pngです。
ソースコード内ではxxx.pngというファイル名で扱っていても、デバイスによってcocos2d側で勝手にファイル名を変換して読み込んでくれます。

と、ここまでのことはAppDelegate.mのapplicationメソッド内のコメントに書いてあり、このサフィックスについてもそこのソースを編集すれば変えられます。

さて、わざわざ高精細画像を用意しない場合、つまりResourceフォルダ内にxxx-hd.pngなどを置かないと、Retinaディスプレイであってもcocos2dはxxx.pngを使います。
これはフォールバックと呼ばれているようです。

しかし、そのまま使うと、画面全体のサイズに対して、画像が半分のサイズで表示されてしまいます。
縦横のピクセル数をそのまま反映すると考えれば自然なことです。

画像の精細度が半分になってもいいから、Retinaでも同じように表示したい、という場合はapplicationメソッド内で以下をコメントアウトすればOKです。

if( ! [director_ enableRetinaDisplay:YES] )
CCLOG(@"Retina Display Not supported");

cocos2d 2.0のテンプレートでは上記の処理が含まれています。
cocos2dの古いバージョンでは、上記はコメントアウトされていたようですね。少なくとも0.99.5では。
(どのバージョンからコメントが外されたかは未調査です。)


applicationメソッドの中では各種初期設定を行なっているので、理解するとためになると思います。