【cocos2dx】iOS7での不具合を解消する。

【cocos2dx】iOS7での不具合を解消する。
   

実機がないので、細かいところはわからないのですが、シミュレータで確認できた

  • 「ステータスバー」の非表示
  • 文字が表示されないところがある

上記2点を解消しました。
とは言っても、下記ブログにそのまま内容が書かれています。
ここから記入する方法はcocos2dx2.1.3(下記ブログは2.1.4)のやり方です。若干違いがありました。



ステータスバーを非表示にする

これは、ブログのやり方そのままです。
iOSフォルダに含まれている「RootViewController」に、一つメソッドを追加するだけです。



// RootViewController.mm


- (BOOL)prefersStatusBarHidden {
    return YES;
}





文字が表示されないところがある

これは、文字が表示される部分と表示されない部分とがあり、最初はフォントの問題なのかと思いましたが、実はiOSに対応する設定が必要でした。

CCImage.mm内を変更するのですが、これはブログに載っているcocos2dx2.1.4と2.1.3では、やり方が違います。
2.1.3の場合は下記を参考にして下さい。私はこれで上手くいっています。


//CCImage.mm


//変更前
//CGContextRef context = CGBitmapContextCreate(data, dim.width, dim.height, 8, dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
   
//変更後
//(int)dim.width*4に変更
   CGContextRef context = CGBitmapContextCreate(data, dim.width, dim.height, 8,  (int)dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);




//変更前
//[str drawInRect:CGRectMake(0, startH, dim.width, dim.height) withFont:font lineBreakMode:(UILineBreakMode)UILineBreakModeWordWrap alignment:align];

//変更後
   [str drawInRect:CGRectMake(0, startH, dim.width, dim.height) withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:(NSTextAlignment)align];




最後に

おそらくこれ以外は、特にcocos2dxプロジェクトで直す所はないかと思います。
ただ、何があるのかわからないので、ちゃんと実機で確認をしたほうがいいと思います。

私は手元にiOS7の端末がないので、これをどう確認しようか迷っています。iOS6の端末はまだ残しておきたい。どうしよう。

公式でもこの問題は対応しているみたいで、こちらにも情報が載っています。
おそらくcocos2xの最新バージョンでは、このような問題は解決されているでしょう。一度参考にしてみてください。
Fixes for iOS7 and Xcode5 by ricardoquesada · Pull Request #2873 · cocos2d/cocos2d-x · GitHub

Related Posts Plugin for WordPress, Blogger...