Cocos2d-x でプログラムしたマルチプラットフォームの iOS/Android ゲームがあります。デバイスの解像度に応じてスケーリングされる使用する画像のセットは 1 つだけです (私は高解像度デバイスの後でのみ使用します)。たとえば、すべての画像は iPad 用ですが、Galaxy S を使用している場合、画像の位置とスケーリングは GalaxyS_screenWidth/iPadscreenWidth の影響を受けます。
これは、すべての Android デバイスと iPad、iPad2、および古い iPhone で問題なく動作しますが、Retina iPhone では問題があります。iPhone 4 では、すべての画像が非常にピクセル化されたように見えます。これは、画像が iPhone の非網膜解像度にスケーリングされてから、画面いっぱいに拡大された結果です。
Retina モードを有効にしてみましたが、画像が意図したサイズの半分になり (ポイントを使用する get winsize() の使用が原因である可能性があります)、手動でスケーリングすると他の種類の問題が発生します。オプションや属性をいろいろいじってみましたがだめでした。どうすればいいですか?
編集: テキストが自動的に縮小されてから拡大され、ピクセル化されて表示されるため、これはグラフィックスの問題だけではありません。
EDIT 2:フォントはビットマップなので、悪いです。しかし、デフォルトですべての画像がすでに網膜であるため、網膜を使用したくありません。私の画像はすべて iPad 用に設定されているので、iPhone 4 用に少し縮小します。これは Android フォンで動作します。
たとえば、次の方法で取得した画面解像度に応じて、画像がありますgetwinsize()
。
現在の解像度幅が 1024 の場合、画像は同じままです。現在の解像度幅が 900 の場合、画像は 900/1024 でスケーリングされますが、問題ありません。デバイスが iPhone 4 の解像度の幅が 480 の場合、画像は 480/1024 でスケーリングされ、cocos2d-x は自動的に結果の画像を 2 でスケーリングし、ピクセル化します。を使ってgetwinsizeinpixels
みたり、画面サイズを増やしてみたり、いろいろ試してみましたが、コードの多くをやり直さない限り、すぐに使えるものは何もありませんでした。
問題は、どうすればいまいましいエンジンに iPhone 4 を解像度 960x640 の Android フォンとして扱わせることができるかということです。