SpriteKit ゲームで奇妙な問題が発生しています。iPad と iOS シミュレーターでは問題なく動作しますが、iPod Touch で実行するとエラーが発生します。エラーの原因を突き止めました。ここで、テクスチャの配列内の項目の 1 つにアクセスしようとしました。
let firstFrame = Frames[0]
このエラーは基本的に、Frames[0] が存在しないことを示しています。実際、iPod Touch では、配列内の項目数を出力しても何も表示されません。他のデバイスでは、配列には必要なすべてのテクスチャが含まれています。
テクスチャ アトラスからアニメーション用の配列にいくつかのテクスチャをロードする場所と方法は次のとおりです。
let birdAtlas = SKTextureAtlas(named: "bird")
var Frames = [SKTexture]() ////Here is the array into which I am loading textures
let numImages = birdAtlas.textureNames.count ////Should be 12, as is on devices other than iPod
print(numImages) ////On iPod Touch, numImages = 0
for var i=1; i<=numImages/3; i++ {
let birdTextureName = "\(currentBird)\(i)"
print(birdTextureName)
Frames.append(birdAtlas.textureNamed(birdTextureName))
} //^^This loop adds the textures 1 - 4 to the array
for var i=numImages/3; i>=1; i-- {
let birdTextureName = "\(currentBird)\(i)"
print(birdTextureName)
Frames.append(birdAtlas.textureNamed(birdTextureName))
} //^^This loop adds the textures 3 - 1 to the array
これを iPod Touch 以外のデバイスで実行すると、アトラスのテクスチャが配列 Frames に読み込まれます。ただし、iPod Touch では、配列にテクスチャが読み込まれません。テクスチャ アトラスの画像は次のとおりです。テクスチャ配列の画像へのリンク
繰り返しになりますが、テクスチャはアレイに完全にロードされ、iPad および iPhone シミュレーターだけでなく、実際の iPad デバイスでも完全にアニメーション化されます。iPod Touchでは機能せず、エラーが原因でアプリをロードできません. iPod touch は、他のデバイスと同様に iOS 9 を実行しています。
どんな助けでも大歓迎です!ありがとう!