在C++ iPhone游戏中使用Objective-C游戏引擎?

Bug*_*boy 5 c++ iphone opengl-es objective-c cocos2d-iphone

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

我理解Apple称之为"Objective-C++"允许您将C++和Objective-C类混合在一个文件中,但是您不能混合和匹配同一类或函数中的语言结构.

那么,将Cocos2d用于C++游戏是否明智/可行?你必须写很多"胶水"代码吗?我想避免一些直接的OpenGL-ES方法需要的繁重工作.

Amo*_*mok 7

您不必编写任何粘合代码,因为Objective-C++允许您非常自由地混合使用C++和Objective-C代码.但是,我建议在Objective-C中编写它,然后分析是否需要优化它并用C或C++重写这些部分而不是从C++开始.Objective-C不是一种慢速语言,没有理由在可能足够快的时候付出额外的努力来使用C++.


小智 3

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

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