Mac 开发者 - 帮助开始使用 2d 游戏

发布于 2024-08-11 07:40:35 字数 381 浏览 6 评论 0原文

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

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

谢谢。

I want to make some simple 2d games/clones (for Mac), but I have a few questions:

  • Should I use Quartz 2d or OpenGL (I don't plan to try 3d anytime soon)
  • There seems to be a lot of typedef'd things like CGFloat/GLfloat, which should I use?
  • Should I use Objective-C for the game too (classes) or just C? (I assume I'll use Objective-C and Cocoa for window and views.)
  • Is it fine to redraw the entire view each time? I don't really understand how the NSView's -drawRect dirtyRect parameter works, how does it know what I want to update?
  • Are there any good tutorials for this?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寂寞花火° 2024-08-18 07:40:35

Quartz 或 Core Animation 与 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,但是这个问题有一些可以回答的信息这个问题给你。

对于 Quartz 的介绍,我推荐本教程,而且我总是听到 < a href="http://nehe.gamedev.net/" rel="nofollow noreferrer">NeHe 教程 推荐用于 OpenGL。

Quartz or Core Animation vs. OpenGL really depends what you're trying to do. If you want simple drawing and animation, use Quartz or CA. If you want fast/powerful games, use OpenGL. Eventually I'd suggest learning both.

For the typedef'd things, use whichever is meant for the specific system you're using. For Quartz/CA/CG, use CGFloat. For OpenGL, use GLfloat.

Objective-C vs. C also depends on the speed you want. Objective-C adds a little bit of overhead but will (obviously) let you create much more object-oriented games. I'd suggest using Objective-C if you use Quartz and Core Animation, and either Obj-C or C if using OpenGL. However, if you're doing this on a Mac (e.g. not for iPhone), you probably won't see much difference unless you're doing complex fast drawing.

I'm not entirely sure about drawRect, but this question has some information which may answer that question for you.

For an intro to Quartz, I'd recommend this tutorial, and I've always heard the NeHe tutorials recommended for OpenGL.

拿命拼未来 2024-08-18 07:40:35

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

您想要获得多高的图形强度?开罗可能会更容易上手 2D。

If you use SDL with either Cairo or OpenGL, you get virtually the same programming model, but you get cross platform compatibility virtually for free. You should even be able to continue using objective C for the bulk of the game, if you want.

How graphically intensive do you want to get? Cairo will probably be easier to just get going with for 2D.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文