1

多くの画像アセットを含むゲームを開発しており、アプリのサイズを 30MB 未満に抑えたいため、画像を zip ファイルでダウンロードすることにしました。最初のシーンには、50 個の SKSpriteNode オブジェクトと、テクスチャとアニメーション用の 426 個の画像があり、画像がバンドルに含まれていないため、テクスチャ アトラスを作成できません。iOS8[SKTextureAtlas atlasWithDictionary:]から、バンドル リソースにないイメージから atlasc ファイルをコンパイルできるようになりましたが、iOS7 もサポートする必要があります。[UIImage imageWithContentsOfFile:imagePath]メソッドとメソッドを使用して 426 枚の画像をロードすると[SKTexture textureWithImage:textureImage]、メモリ使用量が多いため、アプリがシャットダウンしました。

コード:

for (int i=0; i <= numImages-1; i++) {
    NSString *textureName = [NSString stringWithFormat:@"texture_%05d", i];
    SKTexture *texture = [SKTexture textureWithImage:ImagePath(textureName)];
    [frames addObject:texture];
}

以降:

SKAction *action = [SKAction animateWithTextures:frames timePerFrame:kAnimationFrameTime resize:YES restore:YES];
[node runAction:action withKey:kAnimationActionKey];

ImagePath マクロは、ドキュメント ディレクトリ内の指定された画像の絶対パスを返します。

SpriteKit の Documents ディレクトリからアニメーション用に大量の画像をロードするベスト プラクティスはありますか?

4

0 に答える 0