2013年12月20日

[Cocos2d-x] 画面を縦向きにする

Cocos2d-xで縦向き画面のゲームを作りたいので、画面を縦向きにする方法を調べました。

とりあえず、公式サイトの情報。
Device Orientation | Cocos2d-x

タイトルのDevice Orientation (need to be updated)の、「need to be updated」って、「内容が古い」ってことでしょうか…。
実際、2つあると書かれている方法のうち、最初の「setDeviceOrientation()」というメソッドはもう無いようです。

公式情報があてにならないので、非公式なブログなどをいろいろと見てみました。
どうやらAndroidはAndroidManifest.xmlのscreenOrientationをportraitに変えるだけのようですね。

AndroidManifest.xml
android:screenOrientation="portrait"


iOSの方はiOS5とiOS6で処理を変えなきゃいけないようで、iOSの知識がほとんどない僕は結構混乱しました。

【iPhoneアプリ】iOS6では画面の向きが変わった時に呼ばれる関数が違う | 桜花満開/テンシホタル

How to change the orientation to Portrait? | Cocos2d-x

RootViewController.mmというファイルをいじるようです。

RootViewController.mm
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsPortrait( interfaceOrientation );
}

- (NSUInteger) supportedInterfaceOrientations{
#ifdef __IPHONE_6_0
return UIInterfaceOrientationMaskPortrait;
#endif
}

- (BOOL) shouldAutorotate {
return NO;
}


あと、Xcodeでプロジェクトのトップを選択した時に編集できる画面の「Deployment Info → Device Orientation」の「Portrait」にチェックを入れる必要がありそう。

スクリーンショット 2013-12-20 11.21.14.png

OS毎に別々の設定が必要ということは、画面の回転についてはCocos2d-xの中だけではどうにもならないみたいですね。
OSが違うし仕方がないのかも知れませんね。


posted by t2low at 22:00| Cocos2d-x