0

Cocos2Dを使用してiOSアプリを開発していますが、次のような非常に奇妙な問題が発生しました。

最初はフルバージョンしかなく、iPad2と3の両方ですべてがうまく機能します。今はライトバージョンを作成する予定なので、AppleのWebサイトに新しい証明書を登録しました。lite証明書を使用すると、Xcodeで生成されたliteビルドはiPad2で正常に機能しますが、iPad3の表示は画面の半分のサイズになります。新しい証明書が原因のようですが、質問に答えるのを手伝っていただけませんか。前もって感謝します。

4

2 に答える 2

0

問題を修正するときに考慮できることが2つあります。

  1. 「-hd」という接尾辞が付いた2倍の解像度のアートワークのコピーがあることを確認してください(例:「ninja.png」や「ninja-hd.png」)。これは、iOSで@2xを実行するココスの方法です。
  2. 必要に応じて、コードで網膜が有効になっているかどうかを確認します。

    [[CCDirector sharedDirector] enableRetinaDisplay: YES];

お役に立てば幸いです。そして前に述べたように、それは間違いなく証明書の問題ではありません!(あなたにとって幸運です;))

于 2012-08-31T11:08:20.293 に答える
0

それはあなたの証明書ではありません。iPad3 には Retina ディスプレイがあるため、スケーリングを考慮する必要があります。

また、Retina ディスプレイを活用するために、適切なサイズの新しいテクスチャ/画像を提供する必要があります。Retina 以外の既存のアートワークを使用することもできますが、おそらく問題なく表示されます。しかし、それは完璧に見えません。

私はcocos2dを使用していません。GLkView は秘密のスケールを許可することを期待しているため、GlKit も使用していますか。

たとえば、すでに作成したものをアップスケールしたい場合は、ビューポートが設定されている場所を探すことができます:

int scale = 1; // default is 1 - non-retina. It's adjusted below according to the scale on the device

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
        && [[UIScreen mainScreen] scale] == 2.0) {
        scale = [[UIScreen mainScreen] scale];
    }

    // Set the viewport
    glViewport(0, 0, backingWidth*scale, backingHeight*scale);

私はこれをしません。または、問題を適切に解決できないため、これを行うだけではありません。また、cocos2d にはこのビルトインを処理する方法がまだないことにも驚きました。

また、レンダリング先のビューは EAGLView です: CAEAGLLayer を使用して OPENGL をレンダリングする UIView または GLKView です。後者から変更すると、貼り付けられたコードが問題を解決するのと同じように、これも問題を解決します。どちらもそれにアプローチするための最良の方法ではありません。しかし、それはあなたの問題に対する単純な答えです。おそらく、他の誰かがより詳細な応答を書きたいと思うでしょう。

于 2012-08-31T08:20:50.007 に答える