テクスチャアトラスはCocos2Dで実行するように設計されており、他のコンポーネントとの依存関係がたくさんあります。ですから、それはあなたにとって良い選択ではないと思います。
あなたが投稿したチュートリアルはそれ以外は良いです。最も使いやすいかもしれませんが、非常に優れたエントリポイントになります。このコードの主な部分は、- display
と- (void)displayLayer:
メソッドです。
displayメソッドは、レイヤーがそのコンテンツを必要とするときに呼び出されます。アニメーションは(間接的に)displayメソッドを呼び出し、ここではdisplayLayerを呼び出して、表示する画像を変更します(明確になっているといいのですが:!)。
サイズが固定されていないzwooptexファイル(またはその他)を使用する場合に、表示メソッドをリファクタリングする方法は次のとおりです。
// Implement displayLayer: on the delegate to override how sample rectangles are calculated; remember to use currentSampleIndex, ignore sampleIndex == 0, and set the layer's bounds
- (void)display;
{
static const CGRect sampleRects[11] = {
{ 0, 0, 38, 47 }, // run
{ 0, 47, 46, 47 },
{ 82, 0, 40, 47 },
{ 122, 0, 30, 47 },
{ 152, 0, 36, 47 },
{ 38, 0, 44, 47 },
{ 188, 0, 42, 47 },
{ 230, 0, 26, 47 },
{ 46, 47, 28, 47 },
{ 74, 47, 28, 47 },
{ 102, 47, 28, 47 },
};
unsigned int idx = [self currentSampleIndex];
if (idx == 0)
return;
self.bounds = CGRectMake(0, 0, sampleRects[idx-1].size.width, sampleRects[idx-1].size.height);
self.contentsRect = CGRectMake(sampleRects[idx-1].origin.x/256.0f, sampleRects[idx-1].origin.y/128.0f, sampleRects[idx-1].size.width/256.0f, sampleRects[idx-1].size.height/128.0f);
}
@end
ご不明な点がございましたら、お気軽にお問い合わせください。;)