読者です 読者をやめる 読者になる 読者になる

@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

cocos2dの画面回転制御ネタ

前置き

以前リリースしたゲームで使っているcocos2dがずっとv0.9ぐらいで古かったので、
このたび、バージョンをあげることにした。
iTunes App Store で見つかる iPhone、iPod touch、iPad 対応 ChickenGame

最新はv2とか出ているみたいだけど、まずはv1.0.1で。
※本当は管理にCocoaPodsとか使った方がいいんだけど、まいっか。

使用中のcocos2dのバージョン確認

使用中のcocos2dのversionは、
cocos2d.mを見ればわかります。

回転がくるった

でも起動すると全く回転してないような。
f:id:redogu:20121110235202p:plain

iPhone6シュミレータを使ってると上手くいかない。
悩むこと数分。

回転の制御ネタだろうなと思い、こんなことをした。
GameConfig.hのGAME_AUTOROTATIONの値を変更した。
kGameAutorotationUIViewControllerがデフォルトで入ってたので、
kGameAutorotationCCDirectorにしただけ。

  • kGameAutorotationNone

回転しない

  • kGameAutorotationCCDirector

回転はcocos2dに委ねる、UIKitは使わない

  • kGameAutorotationUIViewController

回転はcocos2d、UIKitの両方を使う、但しパフォ落ちる

下記ソース

//
// Supported Autorotations:
//		None,
//		UIViewController,
//		CCDirector
//
#define kGameAutorotationNone 0
#define kGameAutorotationCCDirector 1
#define kGameAutorotationUIViewController 2

// 3rd generation and newer devices: Rotate using UIViewController. Rotation should be supported on iPad apps.
// TIP:
// To improve the performance, you should set this value to "kGameAutorotationNone" or "kGameAutorotationCCDirector"
#if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR
#define GAME_AUTOROTATION kGameAutorotationCCDirector

結果、こんな感じに。
f:id:redogu:20121110235156p:plain