Mac开发 - 帮助开始2D游戏

时间:2009-11-18 03:55:30

标签: opengl macos 2d quartz-2d

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

  • 我应该使用 Quartz 2d 还是 OpenGL (我不打算很快尝试使用3d)
  • 似乎有很多typedef'd事情,比如CGFloat / GLfloat,我应该使用哪些?
  • 我是否应该在游戏中使用Objective-C(类)或只使用C? (我假设我将使用Objective-C和Cocoa进行窗口和视图。)
  • 每次重绘整个视图都可以吗?我真的不明白NSView的-drawRect dirtyRect参数是如何工作的,它是如何知道我想要更新的?
  • 有没有这方面的好教程?

感谢。

2 个答案:

答案 0 :(得分:3)

石英或核心动画与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并不完全确定,但this question有一些信息可以为您回答这个问题。

对于Quartz的介绍,我建议this tutorial,我总是听到推荐用于OpenGL的NeHe tutorials

答案 1 :(得分:1)

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

您想要获得图形密集程度吗?开罗可能更容易进入2D。