2014年7月5日土曜日

cocos2dxのマルチレゾリューション

Androidの多種多様なディスプレイに対応させるために
しなければならない事は、ざっくり2つ。



1、画面の基本サイズを指定して、リスケール。
2、携帯のディスプレイサイズによって読み込む画像(のサイズ)を変える

1、について。
例えば画像サイズ120ピクセルの画像を表示させるとすると、
ディスプレイサイズが幅360なら大体画面に対して画像は3分の1程度になりますわな。
幅が720なら6分の1程度。
そんな感じで、表示される画像などのオブジェクトサイズが
ディスプレイサイズによって大きく異なってしまうわけなので
基本サイズを最初に決めておいて、
そのサイズよりディスプレイが大きいか小さいかで
拡大縮小を自動的にやってもらうというわけです。そのための記述がコレ。

//解像度の指定
glview->setDesignResolutionSize(854,480,ResolutionPolicy::FIXED_HEIGHT);

記述場所はここらへん。


”//解像度の指定”で指定している数値が基本サイズになる。この場合は960×640。
個々の端末のディスプレイサイズが960×640がより小さければ縮小するし、
大きければ拡大処理をこれで自動にしてくれるということらしい。

コレに関してはこのサイトさんの記述が詳しかった(あざす)。
とりあえず、この設定は必須。

2、について。
個人的にはこのディスプレイサイズによって画像を使い分ける、
っていうのは開発段階では深く考えなくても良いのではないかと思う。
開発段階で同じ画像を何度も作りなおすのは非常に手間なので、
ひとつのサイズでひと通り作ってから最後に他のサイズを作るべきかどうかを
検討したほうが良いかと。

あと、そもそもすべてのゲームでそこまでするべきか
自分個人としてはちょっと疑問というの部分もある。
個人開発レベルの簡単なアプリや、そこまでメモリの消費を
厳密に軽くしていかなければならないほどメモリいっぱいの
ゲームを作るわけでもないなら、まぁ良いじゃん?という話。(←ダメな開発者の見本)
1のディスプレイサイズ設定をちょっと大きめに指定しておいて、
大概のディスプレイでは多少の縮小がかかる設定にしておけば
大・中・小とおんなじ画像何個も作って分岐させなくてもいいんじゃないかと…。ダメ?

とはいえ、それでゲームの処理自体がもさもさになって、
ちょっと古いスペックのスマホじゃ動きまてーん!
じゃあ困るので、コレはもう少し今作っているゲームが具体化した後に
実機で検証してみようと思います。

そんあわけで、開発開始の初期段階では1の設定だけしておけば良いのじゃないだろうか。


☆★というわけでcocos2d-xで制作しました★☆

レッド・ザ・パニッシャー ―スタイリッシュレトロアクション―
カテゴリ: アクション
Google Playで詳細を見る

今なら(永久に)無料! 今すぐチェック!!

0 件のコメント:

コメントを投稿