【问题标题】:Core Animation or OpenGL for simple iPhone game用于简单 iPhone 游戏的核心动画或 OpenGL
【发布时间】:2009-08-05 04:33:31
【问题描述】:

我正在编写一个简单的游戏,它可以在背景图像上快速生成一个球图像。

Core Animation/Quartz 是否足以应付这种情况?

如果 OpenGL ES 不能在这个一次性项目中提供任何实质性的好处,我真的不想学习它。

【问题讨论】:

  • 如果您决定使用 Core Animation,请确保在开发时定期在设备上对其进行测试!它在模拟器中可能工作得很好,但如果你做得太多,它会在设备上运行缓慢!
  • Ed 的评论无关紧要 - 无论您做什么,都应该在设备上进行测试,因为模拟器以您的桌面速度运行,而不是您的 iPhone。
  • 你们都揭示了移动开发期望的一个常见问题。移动开发新手期望模拟器是准确的,或者至少是硬件的最小公分母要求。从事移动开发实践的人知道他们无法做到准确,而设备才是真正的衡量标准。
  • 它被称为模拟器,而不是模拟器,这是有原因的。

标签: iphone cocoa


【解决方案1】:

【讨论】:

  • 是的,我在发帖之前就这样做了。在这种情况下,游戏非常简单,事实上它可能是一次性的……就像我通常编写 LOB 应用程序一样。
【解决方案2】:

OpenGL ES 我想不会太难。

但最终,Core Animation 会好起来的,它超级强大且不难使用。它还可以让你快速启动和运行,以至于你会释放你的游戏“烂”一点,你想改变它,你甚至不必学习 OpenGL。

我强烈推荐看看 cocos2d。一个非常简单的 2d 游戏引擎。 http://cocos2d.org/

看看那个。

干杯,约翰

【讨论】:

  • 谢谢约翰,我去看看引擎。
【解决方案3】:

OpenGL ES 并不难,网络上有很多非常好的资源和分步教程。一开始可能很难,但一旦你掌握了它,事情就会变得容易。 71 Squared 有非常详细的教程:

http://www.71squared.co.uk/iphone-tutorials/

关于这个问题,Core Animation 非常适合大多数应用程序,但在视频游戏中,它是高效绘制游戏并拥有尽可能多的控制权的基础。

Cocos2d 很棒,我推荐它>

【讨论】:

  • 71 平方教程现在已经过时了。您会发现使用的函数现在已重命名或已将其功能放置在其他地方。希望他们会更新它们。
  • 你能告诉我任何有更新教程、差异列表等的地方吗? ?.我很想实现自己,但我不知道现在哪些功能已经过时或被替换。
【解决方案4】:

只需跳转到 Cocos2D 之类的内容,以便为您完成 OpenGL。 OpenGL ES 比 Quartz 明显更快,适应性更强,而且并不难。我什至认为 Quartz 是一个很大的问题,而且很难弄清楚,虽然我最初是在台式机上使用 OpenGL 背景的,所以这种跳跃自然很小。不过,关键是,无论是使用 Quartz 还是使用 OpenGL ES,您都需要花费大量时间进行资源管理等,因此您不妨使用 Cocos2D。

【讨论】:

    【解决方案5】:

    是的,只要你不想同时做数百个球或其他类似的复杂事情,就可以了。

    【讨论】:

    • 谢谢...顺便说一句,它一次只有一个球,但是图像会在屏幕上飞得非常快时被动画化(有几帧)。
    【解决方案6】:

    如果您对 Core Animation 的了解不错,那么我建议您暂时跳过学习 OpenGL ES,因为它不会真正帮助您(当然,如果您想要的只是您所描述的) .另一方面,如果您打算制作更多包含更多图形的游戏,那么开始学习 API 可能是一个更好的主意。 OpenGL ES 是一个简单的 API,您可以通过它使用 iPhone 的全部图形功能。

    如果你想做的只是制作这款游戏​​,那么我会说按照你所知道的并且富有成效的方式去做。

    【讨论】:

    • 感谢您的回复。我之前根本没有使用过 Core Animation 或 OpenGL ES……这是一个简短的项目。所以我希望利用最节省开发时间的方法,因为它是一款非常简单的游戏。
    【解决方案7】:

    我想说这在很大程度上取决于你想用球做什么。如果你只是想启动一个动画而忘记它,Core Animation 可能会很好。但是,如果您尝试与球进行交互,例如通过基于用户交互在飞行途中改变球的方向,那么您可能需要考虑使用 OpenGL ES。当然,你的另一个选择是既不使用 Core Animation 也不使用 OpenGL ES,而只是在计时器上重绘你的视图。

    如果你是一个相当称职的 C 程序员,我不会太拖延 OpenGL ES 的东西。 Apple 提供了很多框架来在其模板中托管 OpenGL ES 视图。尽管 OpenGL 可以参与其中,但如果您不尝试渲染大型多对象 3D 场景,那么基础非常简单,您应该能够很容易地获得一些不错的结果。虽然它是针对 OpenGL 而不是 OpenGL ES,但我还是推荐这组视频演示作为一个很好的起点:

    www.videotutorialsrock.com

    【讨论】:

    • 感谢 Gavin 的回复。球将通过滑动手势从底部发射。然后一直动画到顶部(在此期间没有用户输入)。一次只会显示一个球。由于这只是一个小型的一次性项目,我想确定 CA 是否会好起来……以后不太可能写游戏(我通常做 LOB 应用程序)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2010-10-25
    相关资源
    最近更新 更多