2009-08-06 153 views
5

你经常听说C++比Objective-C更适合游戏,特别是在像iPhone这样的资源受限的环境中。 (我知道你仍然需要一些Objective-C来开始与iPhone服务交流)。但是,现在选择的2D游戏引擎似乎是Cocos2d,它是Objective-C。我知道苹果称之为“Objective-C++”允许你在单个文件中混合使用C++和Objective-C类,但是你不能在同一个类或函数中混合和匹配语言的结构。在C++ iPhone游戏中使用Objective-C游戏引擎?

那么,在C++游戏中使用Cocos2d是否合理/可能?你是否需要编写大量的“粘合”代码?我想避免一些OpenGL-ES直接需要的方法。

回答

3

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

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

+1

谢谢。除了性能方面的考虑外,我更喜欢使用C++作为个人品味的事情。听起来像我可以做到这一点,仍然使用Cocos2D。 – Buggieboy 2009-08-18 13:55:52

7

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