わかりました、これは壁に向かって叫んでいます...だから我慢してください。
Xcode で SpriteKit テンプレートを使用して簡単なゲームのコーディングを開始しました。
という名前のフォルダーに 2 つの PNG を追加Stage01.atlas
し、それをプロジェクトにドラッグしました。どのオプションを選択したか思い出せません。なぜなら、プロジェクト ナビゲーターに青色のフォルダー アイコンとして表示されるからです (おそらく拡張子があるためでしょうか?)。
次に、いくつかのスプライトをインスタンス化しました
[[SKSpriteNode alloc] initWithImageNamed:@"My_Image_Name_Without_The_@2x_Or_Extension"];
ビルド設定でテクスチャアトラスを有効にするのを忘れていたため、最初は機能しませんでした。その後、それは魅力のように機能しましたが...
次に、新しい種類のスプライトを表示するために、3 番目の PNG をアトラスに追加しました。
新しいスプライトはどこにも見当たりませんでした。
クリーン インストールを試みます。デバイスからアプリを削除し、クリーン、ビルドします。
これで、すべてのスプライトが、背面の境界線と大きな赤い "X" が内側にある白いクワッドとしてレンダリングされます。次のようなコンソール メッセージも表示されます。
SKTexture: Error loading image resource: "My_Image_Name_Without_The_@2x_Or_Extension"
.atlas フォルダーを削除して、「追加されたフォルダーのグループを作成する」および「追加されたフォルダーのフォルダー参照を作成する」の両方として、再度追加しようとしました(これにより、リソースがバンドル ルートではなくサブフォルダーに配置される可能性があります)。 、したがって、通常はUIImageなどにとって重要です)、役に立たない.
スプライト作成コードを次のように置き換えました。
SKTexture* texture = [SKTexture textureWithImageNamed:name];
SKSpriteNode* body = [[SKSpriteNode alloc] initWithTexture:texture];
...そしてブレークポイントを配置して、テクスチャがnil
. そうではありません。
それで、何が得られますか?
補足: テンプレートにバンドルされている「宇宙船」テクスチャは問題なくレンダリングされます。
補足 2: 誰かが「spritekit」というタグを作成します (SO は「既に存在するため」使用できませんが、提案としては出てきません)。