iOSゲーム本”iPhoneソーシャルゲーム開発”の写経11:iPad対応

Screen Shot 2012-07-27 at 11.23.28 Screen Shot 2012-07-27 at 11.23.52 Screen Shot 2012-07-27 at 11.24.38
第6章:Game Centerの残りは、対戦機能の実装のみだけど、実機(iPod touch)が1台しかなくて動作確認が出来ないので、とりあえずパスして次の章(といっても付録)に移ることにした。付録は次の3つ。

  • iPadへのネイティブ対応
  • アプリケーションアイコンの設定
  • Retinaディスプレイへの対応

Xcode4では、まだどれもやってないので、それぞれ試そうと思う。実機はiPod touchとiPad2を持っており、iPadでも動かせたらGame Centerの対戦機能も確認できるはず。今回はiPad対応をやった。

  • プロジェクトファイルの設定
  • Viewのボタン配置の変更
  • iPad用の画像を追加
  • デバイスの回転に対応

プロジェクトファイルの設定
やったことは、Xcodeでプロジェクトファイルを選択したときに表示される設定の、Summaryタブ->iOS Application Target->Devicesを”Universal”に変えただけ。プロジェクト作成時にユニバーサルアプリを選択すればここはいじらなくていいかと思う。

Viewのボタン配置の変更
Screen Shot 2012-07-27 at 10.04.06ボタンは右上や右下のあたりに配置していたが、iPadの大きな画面でも追従して端に配置されるようstoryboardファイルを編集した。やったことは、UtilitiesのSize InspectorにあるAutosizingをいじって右上や右下といった目的の場所になるよう設定すること。隣にExampleが表示されるので分かりやすい。

あと、便利と思ったのは、部品を複数選択した状態で、メニューのEditor->Embed in->Viewと選択したらひとつのViewにまとめてくれること。コイン画像やBetボタンをまとめて、同様に変更した。

iPad用の画像を追加
タイトル画面の画像をiPad用に用意した。iPhone/iPadの区別をコードでするには、UI_USER_INTERFACE_IDIOMマクロを使うみたい。”UIUserInterfaceIdiomPhone”がiPhoneまたはiPod touchで、”UIUserInterfaceIdiomPad”がiPad。

// タイトル画像を設定する
- (void)setupTitleImage
{
    // タイトル画像を読み込み、プロパティに設定する
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        // iPhone or iPod touch
        self.titleImage = [UIImage imageNamed:TitleViewTitleFileName];
    }
    else {
        // iPad
        self.titleImage = [UIImage imageNamed:TitleViewTitleFileName_iPad];
    }
}

デバイスの回転に対応
iPadのみ回転に対応させる。iPhone/iPadの区別はUI_USER_INTERFACE_IDIOMマクロでやり、iPadではPortrait/Horizontal両方対応ということでYESを返している。ただ、タイトル画面だけは画像が間延びするのを防ぐためにsetNeedsDisplayメソッドをコールして再描画している。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        // iPhone/iPod touch: 縦方向のみ
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    else {
        // iPhone/iPod touch以外: 回転したときに再描画させる
        [self.view setNeedsDisplay];
        return YES;
    }
}

参考サイト

iPhoneソーシャルゲーム開発
林 晃
シーアンドアール研究所
売り上げランキング: 245996

関連エントリー

  1. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経4:画像の表示
  2. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経8:動画の再生
  3. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経5:アニメーション処理
  4. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経6:音声の再生
  5. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経9:Game Centerでの認証
This entry was posted in 未分類 and tagged , . Bookmark the permalink.