21

Cocos2d-iphoneは、Retina画像(およびその他のアセット)に-hd拡張子を使用します。cocos2d Retinaガイドは、@2xに関する「いくつかの非互換性」について漠然としか語っていません。

Appleは「@2x」サフィックスを使用しますが、いくつかの非互換性のため、cocos2dはその拡張子を使用しません。代わりに、cocos2dには独自のサフィックス「-hd」があります。

警告:「@2x」サフィックスの使用はお勧めしません。Appleはこれらの画像を特別な方法で扱い、cocos2dアプリケーションにバグを引き起こす可能性があります。

素晴らしい。私は十分な情報を得ていると感じています。

@ 2xに関する2年前のバグレポートを通じて、 @2xの問題を説明していると思われるフォーラムスレッドへのリンクを取得しました。ただし、そうではありません。私がそこで見つけた唯一のヒントは、@ 2xに関するiOS(4.0 / 4.1)のバグがあり、それはもはや関係がないと思うことです。いくつかの重要な側面を見逃した可能性があります(キャッシュまたは繰り返しの読み込みの問題についての話がありました)-結局のところ、スレッドは非常に長いです。

cocos2d開発者が-hdの代わりに@2xサフィックスを画像に使用している場合、どのような特定の問題が発生する可能性があるのか​​知りたいですか?

うまくいくかもしれないし、実際に間違っているかもしれないことの具体的な例を挙げてください。

4

2 に答える 2

7

これがこのリンクからの主な理由のようです:http://www.cocos2d-iphone.org/forum/topic/12026

具体的には、riqによるこの投稿:

initWithContentsOfFileが修正されたかどうかはわかりませんが、4.0では壊れていて、@ 2x、〜iphone拡張機能では機能しませんでした。imageNamedはロードされたすべてのファイルをキャッシュするため、initWithContentsOfFileよりもはるかに多くのメモリを消費します。また、@ 2x拡張機能は何かを行いますが(正確にはわかりません)、cocos2dでは正常に機能しません。

もう1つの良い点:iPhone 4がRetinaディスプレイでリリースされたばかりのとき、Cocos2Dの一部のユーザーは古いバージョンを使用していたと確信しているため、ユーザーがサポートしていないバージョンのCocos2DでRetinaディスプレイを使用していたときそれは、物事が本来の2倍の大きさだったということです。繰り返しますが、Cocos2Dの非常に初期のバージョンを使用していない限り、これはほとんどに修正されています。

概要、主な問題はiOS 4のinitWithContentsOfFileにあったようですが、アプリでCocos2D 2.0-rc2で正確なAPIを使用しており、問題がまったくないため、これは修正されています。私は画像にAppleが指定したすべての拡張機能を使用していますが、すべてがうまく機能しています。:)

于 2012-06-15T01:13:09.920 に答える
7

これには歴史的な背景があるようです。

-hdグラフィックスを使用する価値があるのは、それらのロードがAppleの機能に依存せず、フレームワークコードで行われることです。したがって、-hdはiPhoneシミュレーターモードでiPadにロードでき、2xモードでより高解像度の画像を利用できます。

それ以外は、1週間前にこれを調べていたときに、@2xを使用しない理由を見つけることができませんでした。

すべての詳細が必要な場合は、riqに電子メールを送信するのがおそらく最善です。

于 2012-06-13T23:41:13.493 に答える