Skip to content

cocos2d-xで様々な画面の解像度に対応する方法

2012年12月12日

クロスプラットフォームということは、いろんなデバイスがあるってこと。

で、画像を普通に配置するとピクセル単位になるのでデバイスによって画像の見え方が変わってしまいます。

なのでそれに対処する方法です。

手っ取り早く紹介すると、「AppDelegate.cpp」に

pDirector->setContentScaleFactor( 768 / pDirector->getWinSize().width);

と入れるだけです。「768」のところは基準となる解像度を入れてください。640とか1024とか。

 

あと、文字サイズ。

文字サイズもなんだかでデバイスによって結構違って見えてきます。

ここで紹介する方法は正しいかどうかわかりませんが、暫定で以下のようにしています。

まずは定数でウィンドウサイズを宣言して、基準となる画面サイズからの倍率を取得。
この時、さっきのわり算とは逆になります。

#define WINSIZE CCDirector::sharedDirector()->getWinSize()
#define TEXT_SCALE WINSIZE.width/768;

基準となる画面解像度を倍率1としてそれより大きくするか小さくするか、という感じ。

そのあと

float MenuTextSize = 28 * TEXT_SCALE;

として文字のサイズを変数に入れて活用します。

ここでは変数にしてますが、こいつも定数にしてやるのがいいのかなーって思ってます。

今日はこんなところで。

広告

From → cocos2d, cocos2d-x

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。