0

私は cocos2d-iphone JavaScript バインディングを試しているので、現在のプロジェクトが完成したら、Web または Android プラットフォームに簡単に移植できます。現在、xcode を使用して iOS デバイス用の js を実行しています。

JavaScriptでRetinaディスプレイを検出する方法があるかどうかを調べようとしています。私の sd/hd イメージは、標準のファイル名規則 (つまり、image.pngimage@2x.png) で問題なくロードされているようですが、BMLabels が正しいバージョンのフォント ファイルをロードするのに問題があります。画面サイズを確認すると、予想どおり、Retina ディスプレイと非 Retina ディスプレイで同じピクセル幅が返されます。通常、obj-c では を使用するだけCC_CONTENT_SCALE_FACTOR()ですが、javascript バインディングで同等のものを見つけることができません。

私はこの SOの質問/回答を見つけました。このプロジェクトをブラウザ経由で表示しているときに非常に便利ですが、ios デバイスの問題は解決しません...

例:

var label = cc.LabelBMFont.create("0123456789", "EuroBold24.fnt");

対。

var label = cc.LabelBMFont.create("0123456789", "EuroBold24@2x.fnt");

これらはどちらも機能しますが、デバイスが Retina 対応デバイスの場合、どちらを呼び出すかを知る必要があります。何か案は?ありがとう。

4

1 に答える 1

0

cocos2d-iphone で @2x を使用しないでください。次のサフィックスを使用して、カスタム ファイル拡張子形式を使用します。

  • iPhone SD: image.png
  • iPhone Retina: image-hd.png
  • iPad SD: image-ipad.png
  • iPad Retina: image-ipadhd.png

@2x は画像ファイルでのみ機能し、cocos2d のカスタム ファイル サフィックスは、ビットマップ フォント (.fnt) やタイルマップ (.tmx) ファイルを含む、サポートされているすべてのアセットで機能します。

于 2013-01-07T21:57:14.510 に答える