0

CoreAnimation のみを使用してスプライトをアニメーション化しようとしています。スプライトシートを反転する方法がわからないことを除けば、これまでのところ機能しています。

今、私は歩くアニメーションを持っていますが、スプライトが歩いている方向を向くようにします (後ろ向きに歩くのはばかげているように見えるため)。

スプライト シートに反転した画像を追加することもできると思いますが、さらに追加すると非常に大きくなる可能性があるため、むしろ避けたいと思います。

現在、スプライトが拡張CALayerされており、その内容をCGImageRefスプライト シートに設定しました。

self.contents = (id) image;

それを裏返すために、私は試しました:

UIImage *tmp = [UIImage imageWithCGImage:image scale:1.0 orientation:UIImageOrientationUpMirrored];
CGImageRef flippedImage = tmp.CGImage;
self.contents = (id) flippedImage;

..そしてそれは機能していません。

アニメーションを含む他の解決策を見つけましたが、フリップをアニメーション化したくありません。私はそれがすぐに起こることを望んでいます。

これを行う簡単な方法はありますか?

全体をひっくり返す方法があれば、CALayerそれも知りたいです。=]

ありがとう!

4

1 に答える 1

2

画像を反転するのではなく、レイヤー オブジェクトに変換を適用してみてください。何かのようなもの:

self.transform = CATransform3DMakeScale(-1, 1, 1);

これはパフォーマンスの面でも優れている可能性があります。スプライトが反対方向に歩く必要がある場合は、新しい画像を割り当てて回転させるのではなく、変換を CATransform3DIdentity に戻すことができます。

于 2013-05-24T19:47:50.293 に答える