您经常听说C ++比Objective-C更适合游戏,尤其是在像iPhone这样资源有限的环境中。 (我知道你仍然需要一些Objective-C来与iPhone服务进行对话。)然而,这些天选择的2D游戏引擎似乎是Cocos2d,它是Objective-C。
我理解Apple称之为“Objective-C ++”允许您在单个文件中混合使用C ++和Objective-C类,但是您不能在同一个类或函数中混合和匹配语言的结构。
那么,将Cocos2d用于C ++游戏是否明智/可行?你必须写很多“胶水”代码吗?我想避免直接OpenGL-ES方法需要的一些繁重工作。
答案 0 :(得分:7)
您不必编写任何粘合代码,因为Objective-C ++允许您非常自由地混合使用C ++和Objective-C代码。但是,我建议在Objective-C中编写它,然后分析是否需要优化它并用C或C ++重写这些部分而不是从C ++开始。 Objective-C不是一种慢速语言,没有理由在可能足够快的时候付出额外的努力来使用C ++。
答案 1 :(得分:3)
我目前正在使用Cocos2进行游戏原型设计。我正在使用Chipmunk用C ++编写游戏逻辑,然后使用Cocos实现视图层。您确实可以在相同的类,函数和代码行中自由地混合使用C ++和Objective-C。我确定有限制,比如你可能无法在类接口中混合使用Objective-C和C ++方法定义语法(我实际上没有想过尝试过),但是对于大多数实际用途,你可以自由混合。
如果您只针对iPhone,那么我不会太担心在Objective-C中编写所有内容。正如其他人所提到的,如果任何事情确实是性能瓶颈,您可以对其进行分析和优化。我正在用C ++编写我的游戏核心,因为我可能想在其他平台上部署,在这种情况下,Objective-C将成为一种负担。