【发布时间】:2010-05-16 00:27:53
【问题描述】:
如果您玩过《植物大战僵尸》,您就会看到角色动画的流畅和非凡。谁能假设他们是如何做到这一点的?它们似乎不仅仅是动画位图;即使角色旋转和缩放,动画也太清晰了。艺术品看起来像矢量,但我无法想象所有东西都是使用 Core Graphics 绘制的。有任何想法吗?
【问题讨论】:
标签: iphone animation core-animation core-graphics
如果您玩过《植物大战僵尸》,您就会看到角色动画的流畅和非凡。谁能假设他们是如何做到这一点的?它们似乎不仅仅是动画位图;即使角色旋转和缩放,动画也太清晰了。艺术品看起来像矢量,但我无法想象所有东西都是使用 Core Graphics 绘制的。有任何想法吗?
【问题讨论】:
标签: iphone animation core-animation core-graphics
我的猜测:OpenGL。 Core Graphics 在 iPhone 上不具备在该细节级别上进行实时矢量图形的性能。粗略看一下 PvZ 图形,我认为他们使用单独的位图来表示植物和僵尸的身体部位——例如,豌豆射手可能由一个底座、几片附在上面的叶子、一个头和一个茎组成(它随着“头部”摆动而前后倾斜)。换句话说,位图本身并没有改变;它们只是相对于彼此移动和旋转,这是 OpenGL 非常适合的。
【讨论】:
如果您想要制作更强烈、更流畅的图形以动态响应用户输入(即游戏 - 如 PvZ),那么 OpenGL 就是您的理想之选。最终杀死您的不是图像和图形的动态绘制,而是当您在 Objective-C 运行时将细节放入开放式运行循环(即核心动画和 UIKit 编程)时事件循环的开销。
【讨论】:
正如其他人所指出的,他们可能使用 OpenGL 或在 OpenGL 之上运行的游戏引擎。
如果你想实现这样的目标,我建议使用cocos2d for iPhone。它建立在 OpenGL 之上,但使用 Objective-C 并面向 2D 游戏。因此,它提供精灵表支持、粒子系统、动作、视觉效果等等。
【讨论】:
您绝对可以使用 CoreGraphics 和 spritesheets 完成此任务。
【讨论】: