画面サイズの定義

スマートフォンは、端末によって解像度が様々なため、端末毎に画面を作っていたのでは非効率です。
そこで、プログラム上は全て共通の画面サイズで作成し、端末表示の際に自動で縮尺調整を行う機能を使います。
共通の画面サイズですが、現在のスマートフォンだとFullHD(1080×1920)が平均値ではないかと思うのですが、FullHDでは画像データが大きくなりアプリの容量やパフォーマンスに影響してきます。また座標をここまで細かく制御する用途はほとんど無いため、FullHDの1/3である360x640くらいが画面サイズとして適正値と判断しました。
ただ360×640に適した画像データをFullHDにスケールアップすると画像が粗くなるので、画像リソースは2倍の720×1280を基本として作成することに(システム上は画像リソースの半分のサイズ)にします。
以上を踏まえ、AppDelegate.cppで下記のように定義します。

glview->setDesignResolutionSize(360, 640, ResolutionPolicy::SHOW_ALL);
画面サイズを横360x縦640で定義します。
ResolutionPolicy::SHOW_ALLは、定義した画面サイズと端末とのアスペクト比が異なる場合は余白を作って調整されます。
なお、アスペクト比が異なる端末で余白を作りたくない場合、ResolutionPolicy::NO_BORDERと記述することでアスペクト比を保持し、画像をはみ出して調整が行われます。その他、ResolutionPolicy::EXACT_FITと記述すると、アスペクト比を無視して(引き伸ばして)余白部を無くすことも可能です。

director->setContentScaleFactor(2.0f);
アプリ上で取り扱う画像サイズに対して、画像リソースは2倍であることを定義します。
例えば、画像リソース(画像データ)は100pxであるが、アプリ上は50pxの画像サイズとして扱われます。
端末は、画像リソースに対してスケールアップするため画像が粗くなることを防ぐことができる。