5

你经常听到 C++ 比 Objective-C 更适合游戏,尤其是在像 iPhone 这样资源受限的环境中。(我知道你仍然需要一些 Objective-C 来与 iPhone 服务进行初始对话。)然而,现在选择的 2D 游戏引擎似乎是 Cocos2d,即 Objective-C。

我了解 Apple 所谓的“Objective-C++”允许您在单个文件中混合 C++ 和 Objective-C 类,但您不能在同一个类或函数中混合和匹配语言的构造。

那么,将 Cocos2d 用于 C++ 游戏是否明智/可行?您是否必须编写大量“胶水”代码?我想避免直接使用 OpenGL-ES 方法所需的一些繁重工作。

4

2 回答 2

7

您不必编写任何胶水代码,因为 Objective-C++ 允许您非常自由地混合 C++ 和 Objective-C 代码。但是,如果您需要优化它并用 C 或 C++ 重写这些部分,而不是从 C++ 开始,我建议您用 Objective-C 编写它,然后进行分析。Objective-C 不是一门慢的语言,当它可能足够快时,没有理由投入所有额外的努力来使用 C++。

于 2009-08-06T15:27:24.337 回答
3

我目前正在使用 Cocos2 制作游戏原型。我正在用 Chipmunk 用 C++ 编写游戏逻辑,然后使用 Cocos 来实现视图层。您确实可以在同一个类、函数和代码行中自由混合 C++ 和 Objective-C。我确信有一些限制,比如你可能不能在类接口中混合使用 Objective-C 和 C++ 方法定义语法(我实际上没想过尝试),但对于大多数实际目的,你可以自由混合。

如果您只针对 iPhone,那么我不会太担心用 Objective-C 编写所有内容。正如其他人所提到的,如果有什么实际上是性能瓶颈,您可以对其进行分析和优化。我正在用 C++ 编写我的游戏核心,因为我可能想部署在其他平台上,在这种情况下,Objective-C 将成为一种负担。

于 2009-08-06T22:20:36.837 回答