如何在y轴上翻转CGImageRef

时间:2013-05-24 19:06:07

标签: iphone ios uiimage core-animation cgimageref

我正在尝试仅使用CoreAnimation为sprite设置动画。它到目前为止工作,除了我无法弄清楚如何翻转精灵表。

现在,我有一个步行动画,但我希望精灵面对它行走的方向(因为它看起来有点愚蠢地向后走)。

我想我可以在精灵表上添加反转图像,但我宁愿避免使用它,因为当我决定添加更多时,它会使它变得非常大。

现在,我的精灵正在扩展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,我也想知道。 =]

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以尝试将变换应用于图层对象,而不是翻转图像。 类似的东西:

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

这对性能也可能更好;如果精灵需要向相反方向行走,你可以将变换设置回CATransform3DIdentity,而不是分配新图像并旋转它。