【问题标题】:Mac dev - Help getting started with 2d gamesMac dev - 帮助开始使用 2d 游戏
【发布时间】:2009-11-18 03:55:29
【问题描述】:

我想制作一些简单的 2d 游戏/克隆(适用于 Mac),但我有几个问题:

  • 我应该使用 Quartz 2d 还是 OpenGL(我不打算很快尝试 3d)
  • 似乎有很多类型定义的东西,比如 CGFloat/GLfloat,我应该使用哪个?
  • 我应该在游戏中也使用 Objective-C(类)还是只使用 C? (我假设我会在窗口和视图中使用 Objective-C 和 Cocoa。)
  • 每次都重绘整个视图可以吗?我不太明白 NSView 的 -drawRect 的dirtyRect 参数是如何工作的,它怎么知道我要更新什么?
  • 有什么好的教程吗?

谢谢。

【问题讨论】:

  • 另一种检查非常容易绘图的语言是处理。 processing.org

标签: opengl macos 2d quartz-2d


【解决方案1】:

Quartz 或 Core Animation vs. OpenGL 真的取决于你想要做什么。如果您想要简单的绘图和动画,请使用 Quartz 或 CA。如果您想要快速/强大的游戏,请使用 OpenGL。最后,我建议两者都学习。

对于 typedef 的内容,请使用适用于您正在使用的特定系统的内容。对于 Quartz/CA/CG,使用 CGFloat。对于 OpenGL,请使用 GLfloat。

Objective-C 与 C 的对比也取决于您想要的速度。 Objective-C 增加了一点开销,但(显然)可以让您创建更多面向对象的游戏。如果你使用 Quartz 和 Core Animation,我建议使用 Objective-C,如果使用 OpenGL,我建议使用 Obj-C 或 C。但是,如果您在 Mac 上执行此操作(例如,不是为 iPhone 执行此操作),除非您正在执行复杂的快速绘图,否则您可能不会看到太大的差异。

我不完全确定 drawRect,但this question 有一些信息可以为您解答这个问题。

对于 Quartz 的介绍,我推荐 this tutorial,而且我一直听说 OpenGL 推荐使用 NeHe tutorials

【讨论】:

  • 感谢您的快速回复!现在我只是想用模拟重力制作一个 boncjng 球动画,但接下来我想尝试一个蛇克隆,并最终转向更复杂的事情。是的,这不适用于 iPhone。你实际上可以用核心动画做什么? OpenGL 是更多的移动物体,而石英是更多的绘画形状,我说得对吗?
  • Core Animation 让您非常轻松地进行运动和动画制作。石英用于绘画。我相信它们可以结合起来。我猜 OpenGL 是用于移动物体、场景等的。请参阅本指南:developer.apple.com/mac/library/documentation/cocoa/Conceptual/…
  • 如果我在 C 中完成大部分工作,那么移植到 Windows 可能会容易得多,对吧?
  • 我想是这样,但代码会更糟糕。如果你希望它是可移植的,OpenGL 可能是最简单的。
  • 我的意思是使用 C 和 OpenGL。OpenGL 是在 C 中,而不是 Objective-C。我的意思是只将 Objective-C 用于可可应用程序、窗口和视图,然后将纯 C 用于游戏代码(使用 OpenGL)。
【解决方案2】:

如果您将 SDL 与 Cairo 或 OpenGL 一起使用,您将获得几乎相同的编程模型,但您几乎可以免费获得跨平台兼容性。如果您愿意,您甚至应该能够在大部分游戏中继续使用目标 C。

您希望获得多高的图形密集度?开罗可能会更容易处理 2D。

【讨论】:

    猜你喜欢
    • 2015-04-04
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多