iPhone 5が来て、どのように前の原生の応用とcocos 2 dゲームを移植します


この記事は以下のとおりです.http://blog.sina.com.cn/s/blog_4b55f68601018j0h.html
eseedoの共有に感謝します.
iPhone 5が来て、画面の大きさは4寸で、開発者に大きな迷惑をかけました.
以下、二つのタイプに分けてみると、一つはCocoa Touchを用いて開発されたオリジナルアプリケーションであり、もう一つはCocos 2 Dエンジンを用いて開発されたゲームである.1.原生応用原生応用の移植は比較的簡単で、一般的に以下の手順に従って行うことができる. 
(1)Xcode 4.5 GMのダウンロードインストール
(2)[email protected]のロードマップ(1136*640)は、このネーミング仕様がロードマップにのみ適用されることに注意してください.
(3)auto resizing masksの設定が適切であれば、ほとんど影響しない
(4)そうでない場合はauto resizing masksを設定する必要がある.
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

(5)iOS 6特有のAuto Layoutを使用する(ただしアプリケーションはiOS 6のみ).
自動レイアウトについては、チュートリアルを参照してください.
http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
(6)自動回転について:UIViewController従来のshouldAutorotateToInterfaceOrientation:メソッドが破棄されます.したがって、s u p p p p o r t e d I n t e r f a c e OrientationsForWindow:およびshouldAutorotateメソッドを使用する必要があります.
- (BOOL)shouldAutorotate {
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAllButUpsideDown;    
}

(7)インタフェースレイアウトに高い要求がある場合、異なるデバイスタイプに応じて異なるピクチャを提供することは、以下のように判断することができる.
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        // iPhone Classic
    }
    if(result.height == 568)
    {
        // iPhone 5
    }
}

2.Cocos 2 Dが開発したゲーム  ゲームアプリケーションでは、自動レイアウトの役割は大きくなく、2つの解像度の画像を提供する必要があります.まずはもちろんXcode 4.5 GMと最新のCocos 2 d v 2.1 betaをダウンロードします.また、解像度に応じて異なるピクチャを使用するために、(1)画面サイズに基づいてデバイスタイプを判断する方法、すなわち、デバイスの高さが1136であれば4インチデバイスであると判断する方法が2つある.方法は同じだ.  (2)サードパーティ製のクラスを使用します.ここでは次のUIdeviceHardwareのクラスを紹介します.ダウンロード先:(https://gist.github.com/1323251)  使用方法(例): 
 UIDeviceHardware *h = [[UIDeviceHardware alloc]init];
    NSString *platformType = [h platformString];
  [h release];   
     CCLabelTTF *device = [CCLabelTTF labelWithString:platformType fontName:@"Marker Felt"fontSize:64];
    device.position = ccp(size.width/2,size.height*0.7);
    [selfaddChild:device];

注意が必要なのは、手元にiPhone 5やtouch 6がないため、4 sで測った場合、コードを[h platform]に変えるとiPhone 4,1が表示されるので、iPhone 5にはiPhone 5,1が表示されると推測しています.ここではついでにUIdeviceというアップルが公式に提供しているクラスを紹介して、とても役に立ちます.NSString*deviceType=[UIdevice currentDevice].model;iPhone、iPod touchなど、デバイスのタイプを取得できます.その他のプロパティも取得できます:name デバイス名、例えば「My iPhone」systemName システムタイプ、例えば「iOS」systemVersion、ファームウェアバージョン、例えば「4.0」uniqueIdentifier、デバイス識別子、残念ながらidentifierForVendor、iOS 6に追加されたNSUUIDタイプ、デバイス一意識別子は、同じ開発者の異なるアプリケーションが同じ識別子を享受することに注意しなければならない.UIdeviceBatteryState、バッテリステータスisMultitaskingSupported、マルチタスクリファレンスをサポートしているかどうか:http://stackoverflow.com/questions/12396545/how-to-deal-with-iphone-5-screen-size