2

私の質問は簡単です:1。私はすべてcocos2dで行われるiphoneアプリを作りました。2.私はそれをiphone4-retinaに適合させ、すべてのPNGファイルに-hdコピーがあります。

iPhoneで実行すると、アプリが正しく表示されます(320x480)。iPhone4-retinaで実行すると、アプリも正しく表示されます(640x960)。

ただし、iPadで実行します。アプリがiPhoneのみに設定されている場合、正しく実行されますが、iPhoneの解像度(320x480)としてのみ実行されます。アプリがiPhone/iPadに設定されている場合、原因は正しく表示されません。

網膜対応のiPhoneアプリをiPadでも網膜として実行するオプションがあるはずですが(アップルの人はそれを見逃すほど愚かなことはできません)、私はそれを見つけることができませんでした。

オプションはどこにありますか?または、cocos2dが同じように簡単に仕事をするためのスイッチを持っているという代替案はありますか?相対座標を使用するなどの提案は必要ありません。また、20を超えるコード行を変更する必要があります。

4

1 に答える 1

2

私の知る限り、iPhone アプリが iPad に自動的に適応することはありません。iPhone と iPad の両方に対応するユニバーサル アプリを作成し、いずれかのデバイスで実行しているかどうかに基づいて UI を再作成できるはずです。

具体的には、次のことができます。

  1. ユニバーサル アプリ (iPad と iPhone を対象とする armv6 と armv7) 用の XCode プロジェクトを作成し、そこに既存のプロジェクト (ソース、リソース、設定) をインポートします。

    1b. (既存のプロジェクトを変更することもできますが、これを正しく行うのは難しい場合があります。)

  2. iPhone 用のものに加えて、iPad のガイドラインに従ってアイコンとデフォルトの画像を追加します。

残りについては、Xibs についてここで強調表示されているものと同様のアプローチに従うことができます。

  1. iPad のテスト:

    +(Bool)isIpad{ return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad); }

  2. ロードする前に画像名を翻訳します:

    +(NSString*)properImageFileName:(NSString*)imageName { if ([xxxx isIpad]) { return [NSString stringWithFormat:@"ipad_%@", imageName]; } そうでなければ { imageName を返します。} }

したがって、iPhone を使用している場合、画像名は変更されず、iPhone の Retina ディスプレイの規則に従います。iPad を使用している場合は、その場で名前を変更し、正しい画像を使用します。(もちろん、iPad の画像を識別するための規則を使用することもできます)。

これでかなり簡単になるはずですが、ユニバーサル アプリにすべての画像を含めるとサイズが大きくなることに注意してください。

于 2011-05-24T08:42:36.803 に答える