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

5
您经常听到C++在游戏开发中比Objective-C更受欢迎,尤其是在像iPhone这样的资源受限环境中。 (我知道你仍然需要一些Objective-C来最初与iPhone服务通信。)然而,现在选择的2D游戏引擎似乎是Objective-C的Cocos2d。

我了解苹果所谓的“Objective-C ++”允许您在单个文件中混合使用C++和Objective-C类,但是您不能在同一类或函数中混合使用语言的结构。

那么,使用Cocos2d制作C++游戏是否明智/可行?您是否需要编写大量的“粘合代码”?我想避免直接使用OpenGL-ES所需的一些繁重工作。

2个回答

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将成为一种负担。


1
谢谢。除了性能方面的考虑,我更喜欢使用C++。听起来我可以这样做,同时仍然使用Cocos2D。 - Buggieboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接