15

Retina ディスプレイ デバイスのみを対象としているためにプロジェクトに @2x 画像しかない場合、アトラス スプライト キット アトラスは、PVR テクスチャで使用する RGBA8888_COMPRESSED 設定で間違ったスケールを取得します。RGBA8888_PNG (デフォルト) が正常に動作する場合があります。

アトラスに切り替える前に、グループ内のすべての @2x 画像を次のようにロードしました。

sprite = [SKSpriteNode spriteNodeWithImageNamed:@"theImage.png"];

問題はありません。正しいサイズ。

アトラスと RGBA8888_COMPRESSED を使用すると、SKTexture が取得され、画像が大きすぎます。まったく同じノードと構成。代わりにアトラスの SKTexture のみを使用します。

なぜこれが起こるのですか?

4

3 に答える 3

12

アトラス イメージには @2x サフィックスが必要ですが、含まれるファイルは必要ありません。

動作しません:

atlas.png contains theImage@2x.png

正しい使い方:

atlas@2x.png contains theImage.png

そもそも Sprite Kit が PVR テクスチャをサポートしているかどうかさえわかりません。おそらく、設定が PNG で動作することを確認してから、PVR としてエクスポートしてみてください。

それを行うときは、必ずプロジェクトをクリーンアップし (Xcode: Project -> Clean)、デバイス/シミュレーターからアプリを削除してください (このステップは非常に重要です!) そうしないと、バンドルに PNG アトラス イメージが含まれたままになり、だまされる可能性があります。 PVR が機能するのは、Sprite Kit がバンドルにまだ存在する PNG アトラスを実際にロードする可能性があるためです。PNG アトラスを削除してビルドをクリーンアップしないと。

于 2014-01-02T21:21:51.137 に答える
3

このような状況では、Retina 用と 1x resoultion 用の 2 つのアトラスを作成できます。

たとえば、スプライト アトラス フォルダーの名前が MySprites.atlas の場合、1x 画像用にそれを保持し、Retina ビットマップ用に MySprites@2x.atlas という名前の新しいフォルダーを作成できます。

画像は MySprites@2x.atlas ディレクトリ内で @2x~iPad という接尾辞を保持します

于 2014-05-21T11:06:00.793 に答える
0

免責事項: XCode 6 でのみこれをテストしました。

ファイル システムの Images.xcassets フォルダーを開きます。その中には、画像ごとに 1 つのフォルダーがあり、各画像フォルダー内には、画像ファイルと Contents.json という名前の json ファイルがあります。次のようになります。

    {
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "btn_orange.png"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

スケール行を 2x に変更すると、次のようになります。

"scale" : "2x",

画像は網膜画像として表示されます (@2x サフィックスは使用しないでください)。

于 2014-07-03T10:55:58.860 に答える