0

別の開発者が作成したプロジェクトで作業する必要があります。このプロジェクトは cocos2d v1.0.1 を使用しています。問題は、Retina ディスプレイをサポートしていないことです。メソッドに入る[director enableRetinaDisplay:YES];と、次の行で NO が返されることがわかります。

if (! [openGLView_ respondsToSelector:@selector(setContentScaleFactor:)])
    return NO;

そこで問題は、このバージョンの cocos2d を Retina に対応させることは可能でしょうか?

編集: iOS 6.1 シミュレーターで実行しています。網膜シミュレーター。

4

1 に答える 1

1

!は否定演算子です。!conditionが falseの場合にのみ true と評価されますcondition

return NO;行はに応答openGLView_しない場合にのみ実行されます。setContentScaleFactor:

UIView のcontentScaleFactorプロパティは、iOS 4.0 以降で使用できます。このプロパティのセッターの可用性を確認することは、デバイス自体が網膜に対応しているかどうかを確認する方法です。に応答openGLView_しない場合、このデバイスには網膜がありません。これが、CCDirectorが NO を返す理由です。setContentScaleFactor:enableRetinaDisplay

デバイスでコードを実行していて、ここで NO になった場合、このデバイスには Retina がありません。シミュレーターで実行している場合は、少なくとも iOS 4.0 をシミュレートしていることを確認してください。Retina デバイス シミュレーターを入手するには、[Hardware] -> [Device] メニューでいずれかの Retina 構成を選択します。

編集:nilですか
openGLView_Objective C では、nil に対して任意のメソッドを呼び出すことができ、何もせずに nil (ゼロ、NULL、NO) を返します。Retina ディスプレイを有効にする前に、EAGLView を作成し、CCDirector の OpenGL ビューとして設定する必要があります。

于 2013-07-24T11:06:49.230 に答える