1

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

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

谢谢。

4

2 回答 2

3

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

对于 typedef'd 的东西,使用适用于您正在使用的特定系统的任何一个。对于 Quartz/CA/CG,使用 CGFloat。对于 OpenGL,使用 GLfloat。

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

我不完全确定drawRect,但这个问题有一些信息可以为你回答这个问题。

对于 Quartz 的介绍,我推荐这个教程,而且我一直听说NeHe 教程推荐用于 OpenGL。

于 2009-11-18T04:04:05.527 回答
1

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

您想获得多高的图形密集度?开罗可能会更容易接受 2D。

于 2009-11-18T04:11:41.547 回答