请原谅新手问题。我有一个iphone游戏,目前使用大量的png图像进行动画制作。虽然效果很好,但图像占用了大量内存。我也有矢量格式的图像,我宁愿使用那些而不是pngs。
有原生方式吗?
答案 0 :(得分:5)
我假设你想使用Core Animation,对吗?在这种情况下,您的选择非常有限。有几类显示图形的图层:CALayer绘制位图,CAShapeLayer绘制贝塞尔曲线路径,CAGradientLayer绘制线性渐变,CATextLayer绘制文本。您也可以将OpenGL与CAEAGLLayer一起使用,但它不能很好地与其他Quartz图形混合使用。最有可能的是,您无论如何都必须使用PNG,因为即使您有可以通过Core Graphics显示的PDF,也必须先将它们光栅化,然后才能在CALayer中显示它们。此外,光栅化将在CPU上完成,您不希望每个动画帧都发生这种情况。
关于内存使用情况,我感到很痛苦。很多图像==很多记忆。核心动画并不完全是一个游戏引擎,它的设计考虑了UI动画。我曾经用CA做过iPhone游戏,除了内存使用外,当同时发生太多动画时也存在性能问题。看看Cocos2D,它更适合游戏并且正在积极开发中。当然,它有自己的问题,值得一提。
答案 1 :(得分:0)
重复?
编辑:
您是否阅读了Quartz2D Programming Guide?通过“矢量图像”,我不确定你的意思是什么格式。我猜你的意思是SVG。如果你真的不能使用UIWebView
,那么Quartz2D可能是我自定义渲染的方式。
答案 2 :(得分:0)
您可以在Objective-C和SVG下的几个GitHub项目中找到更多信息。
https://github.com/search?type=Everything&language=objective-c&q=SVG