cocos2dの新規プロジェクトを縦画面に変更する(バージョン2.1)

cocos2d 横画面にする

cocos2dの新規プロジェクトで作ったアプリの画面は横画面(Landscape)ですが、これを縦画面(Portrait)に変更します。バージョンは2.1です。

まずiPhone / iPod Deployment Infoを変更します。

cocos2d 横画面にする

つぎにAppDelegate.mを変更します。

AppDelegate.m

[objc]
// The available orientations should be defined in the Info.plist file.
// And in iOS 6+ only, you can override it in the Root View controller in the "supportedInterfaceOrientations" method.
// Only valid for iOS 6+. NOT VALID for iOS 4 / 5.
-(NSUInteger)supportedInterfaceOrientations {

// iPhone only
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
//return UIInterfaceOrientationMaskLandscape;
return UIInterfaceOrientationMaskPortrait; // 差し替え

// iPad only
//return UIInterfaceOrientationMaskLandscape;
return UIInterfaceOrientationMaskPortrait; // 差し替え
}

// Supported orientations. Customize it for your own needs
// Only valid on iOS 4 / 5. NOT VALID for iOS 6.
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// iPhone only
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
//return UIInterfaceOrientationIsLandscape(interfaceOrientation);
return UIInterfaceOrientationIsPortrait(interfaceOrientation); // 差し替え

// iPad only
// iPhone only
//return UIInterfaceOrientationIsLandscape(interfaceOrientation);
return UIInterfaceOrientationIsPortrait(interfaceOrientation); // 差し替え
}
[/objc]

以上で横画面化は完了です。

cocos2dでEXC_BAD_ACCESSしかでなくて泣きそうになった。

cocos2dで新しいクラスを作成して、別のクラスからメソッドを実行しようとしたらEXC_BAD_ACCESSがひたすら出て、困り果てました。

結論から言うと、作業していたcocos2dプロジェクトをARC対応にしていなかったのが原因でした。

Cocos2D 2.X プロジェクトをARCに対応させる方法

↑こちらのページの方法でプロジェクトをARC対応させたらうまくいきました。

備忘のため時系列メモ

  • cocos2dのバージョンは2.1
  • CCNodeのサブクラスとして作ったクラスHoge
  • プロパティとしてCCSprite, CCSpriteBatchNodeがある。
  • メソッドとしてrunAnimationという、CCSpriteのアニメーションを動かすメソッドがある
  • このクラスHogeを、別クラスからrunAnimationを実行しようとしたらEXC_BAD_ACCESS
  • ARC対応にしたらあっさり治った。