我正在开发一款游戏,我需要让玩家通过镜头(例如,放大镜)观察飞机(例如,墙壁)。游戏是在 iPhone 上运行的,所以我的选择是 Core Animation 或 OpenGL ES。
我的第一个想法(我还没有尝试过)是使用 Core Animation 来做到这一点。
- 使用 CALayers 在其上创建墙和对象。
- 使用 CALayer 的
renderInContext:
方法创建墙壁的图像作为背景层。 - 将图像裁剪为镜头形状,按比例放大,然后将其绘制在背景上。
- 在上面画上镜框和“闪亮玻璃”层。
笔记:
- 我比 OpenGL 更熟悉 Core Animation,所以也许有更好的方法来使用 OpenGL 来做到这一点。(请告诉我!)
- 如果我使用未附加到视图的 CALayers,我是否必须自己管理所有动画?还是有一种简单的方法可以手动运行它们?
- 3D视角不重要;我只是放大一面平坦的墙壁。
- 我担心执行上述所有操作对于流畅的动画来说太慢了。
在我提交大量代码来编写此代码之前,我的问题是您是否看到上述计划中的任何陷阱,或者您能否推荐一种更简单的方法来做到这一点?