我正在制作一款游戏,我需要让玩家通过镜头(例如放大镜)看一架飞机(如墙壁)。游戏将在iPhone上运行,所以我的选择是Core Animation或OpenGL ES。在2D场景上创建“放大镜”的最佳方式是什么?
我的第一个想法(我还没有尝试过)是使用Core Animation来做到这一点。
- 使用CALayers创建墙和对象。
- 使用CALayer的
renderInContext:
方法创建墙的图像作为背景图层。 - 将图像裁剪成镜片形状,将其放大,然后在背景上绘制。
- 在上面画出镜框和“玻璃光泽”层。
注:
- 我多了很多熟悉的Core Animation比OpenGL的,所以也许有一个更好的方法与OpenGL的做到这一点。 (请告诉我!)
- 如果我使用未连接到视图的CALayers,是否必须自己管理所有动画?还是有一种直接的方式来手动运行它们?
- 3D透视并不重要;我只是放大平坦的墙壁。
- 我担心上面的所有操作对于流畅的动画来说太慢了。
之前,我犯了很多代码写这个,我的问题是你看到任何缺陷在上面的计划,也可以推荐一个更简单的方法来做到这一点?
CA比OGL慢很多。实际上,速度变慢。 – lajos 2008-10-03 00:37:54
你是怎么得到你的数字的?在原始图像构成方面,这不是我的经验。到目前为止,瓶颈是光栅化图像的时间。 – 2008-10-03 00:42:48