3

テクスチャアトラスの基本的な実装がよくわからないので、私の質問は、それらからテクスチャを引き出す正しい方法は何ですか? さまざまなアトラスをループして、64 個のランダムなテクスチャを引き出す必要があります。

静的アトラスを作成し、参照を再利用してテクスチャを引き出しますか?

static SKTextureAtlas *monsterAtlas;
static int monsterCount;

monsterAtlas = [SKTextureAtlas atlasNamed:@"monsters"];
monsterCount = [monsterAtlas textureNames].count;

//pull out a random texture
NSString* textureName = [[monsterAtlas textureNames] objectAtIndex: arc4random()%monsterCount];
SKTexture* texture = [monsterAtlas textureNamed:textureName];

-また-

テクスチャが必要になるたびに新しいアトラスを作成しますか?

SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"monster"];
SKTexture *f1 = [atlas textureNamed:@"monster-walk1.png"];

私が尋ねている理由は、最初のアプローチでは、10 以上のアトラス参照が作成されるため、私のコードが非常に扱いにくい可能性があるためです。これはメモリを使いすぎますか? 2 番目のアプローチでは、ループの反復を実行するたびにアトラスを作成する余分な作業が多くなることが懸念されます。どうすればいいですか?

4

1 に答える 1