我正在尝试仅使用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
,我也想知道。 =]
谢谢!
答案 0 :(得分:2)
您可以尝试将变换应用于图层对象,而不是翻转图像。 类似的东西:
self.transform = CATransform3DMakeScale(-1, 1, 1);
这对性能也可能更好;如果精灵需要向相反方向行走,你可以将变换设置回CATransform3DIdentity,而不是分配新图像并旋转它。