0

この質問に続いて:

iOS で 200 を超える画像をアニメーション化するにはどうすればよいですか?

Xcode でテクスチャ アトラスを使用する方法を知りたいのですが、cocos2d では使用できません。cocos2d に移植するには、プロジェクトの多くがすでに完了しています。これだけの画像数のアニメもこれだけになります。

そこにある唯一のチュートリアルは、cocos2dまたはコロナに関係しているようです. Zwoptex をダウンロードし、すべてのスプライトをパックしましたが、それでも、それらをトリミングする必要があるかどうか、回転を許可する必要があるかどうか、パディングを与える必要があるかどうか、または網膜画像をどのように処理するかさえわかりません。

私はこのリンクを見てきました:http://mysterycoconut.com/blog/2011/01/cag1/前回の質問で私に勧められたように、私が苦労している多くの部分を見逃しているようです.

これについて何か助けていただければ幸いです。

4

1 に答える 1

1

テクスチャアトラスは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 

ご不明な点がございましたら、お気軽にお問い合わせください。;)

于 2012-07-04T20:01:21.643 に答える