Opengl Mac开发人员-2d游戏入门帮助

Opengl Mac开发人员-2d游戏入门帮助,opengl,macos,2d,quartz-2d,Opengl,Macos,2d,Quartz 2d,我想为Mac制作一些简单的2d游戏/克隆,但我有几个问题: 我应该使用Quartz 2d还是OpenGL?我不打算很快尝试3d 似乎有很多typedef的东西,比如CGFloat/GLfloat,我应该使用哪个? 我应该在游戏中也使用Objective-C还是仅仅使用C?我假设我将使用Objective-C和Cocoa作为窗口和视图。 每次重画整个视图可以吗?我真的不明白NSView的-drawRect dirtyRect参数是如何工作的,它如何知道我要更新什么? 这方面有什么好的教程吗? 谢谢

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

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

Quartz或Core动画与OpenGL的对比实际上取决于您尝试做什么。如果您想要简单的绘图和动画,请使用Quartz或CA。如果您想要快速/强大的游戏,请使用OpenGL。最后我建议两者都要学习

对于typedef'd,请使用针对您正在使用的特定系统的选项。对于石英/CA/CG,使用CGFloat。对于OpenGL,使用GLfloat

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

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


对于Quartz的介绍,我推荐,而且我总是听到OpenGL的推荐。Quartz或Core动画与OpenGL的对比实际上取决于您尝试做什么。如果您想要简单的绘图和动画,请使用Quartz或CA。如果您想要快速/强大的游戏,请使用OpenGL。最后我建议两者都要学习

对于typedef'd,请使用针对您正在使用的特定系统的选项。对于石英/CA/CG,使用CGFloat。对于OpenGL,使用GLfloat

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

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


对于Quartz的介绍,我推荐,而且我一直听到OpenGL的推荐。如果您将SDL与Cairo或OpenGL一起使用,您可以获得几乎相同的编程模型,但您可以免费获得跨平台兼容性。如果你愿意的话,你甚至可以在游戏的大部分时间里继续使用objective C


您希望获得多大的图形强度?Cairo可能更容易用于2D。

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


您希望获得多大的图形强度?Cairo可能更容易在2D中使用。

感谢您的快速回复!现在我只是想制作一个带有模拟gavity的boncjng ball动画,但下一步我想尝试一个snake克隆,并最终尝试更复杂的事情。是的,这不是针对iPhone的。你能用核心动画做什么?我说的对吗,OpenGL更适合移动对象,而quartz更适合绘制形状?核心动画让你很容易地进行移动和动画。石英是用来画画的。我相信它们可以结合起来。我想OpenGL是用于移动对象、场景等的。请参阅本指南:如果我用C语言完成了大部分工作,那么移植到Windows可能会容易得多,对吧?我想是的,但代码会更难看。如果你希望它是可移植的,OpenGL可能是最简单的。我的意思是用C和OpenGL。。OpenGL是C语言,而不是Objective-C。我的意思是只对cocoa应用程序、窗口和视图使用Objective-C,然后对使用OpenGL的游戏代码使用纯C语言。感谢您的快速回复!现在我只是想制作一个带有模拟gavity的boncjng ball动画,但下一步我想尝试一个snake克隆,并最终尝试更复杂的事情。是的,这不是针对iPhone的。你能用核心动画做什么?我说的对吗,OpenGL更适合移动对象,而quartz更适合绘制形状?核心动画让你很容易地进行移动和动画。石英是用来画画的。我相信它们可以结合起来。我想OpenGL是用于移动对象、场景等的。请参阅本指南:如果我用C语言完成了大部分工作,那么移植到Windows可能会容易得多,对吧?我想是的,但代码会更难看。如果你想让它成为po
可编程,OpenGL可能是最简单的。我的意思是将C与OpenGL结合使用。。OpenGL是C语言,而不是Objective-C。我的意思是只对cocoa应用程序、窗口和视图使用Objective-C,然后对使用OpenGL的游戏代码使用纯C。另一种非常简单的绘图语言是Processing。另一种非常简单的绘图语言是Processing。