Mat*_*ers 59
你绝对可以在iOS和Android上使用C++.我已经为两者编写了自己的游戏引擎.
Xcode是iOS的常规IDE,本身支持"Objective-C++"开发(编译器支持Objective-C和C++).您需要在Objective-C中编写一个瘦包装器来与操作系统进行交互,但如果您愿意,可以使用C++编写其他所有内容.如果下载Xcode命令行工具,也可以从脚本构建.
Eclipse是Android的常用IDE,如果您下载NDK,您可以利用JNI在Java和C++之间进行接口.与iOS非常相似,您至少需要Java包装器才能与操作系统进行交互.
但是,您不仅限于Eclipse和Xcode.例如,您可以使用emacs和/或使用CMake来尝试并稍微整合项目设置.Emacs是一个非常强大和灵活的IDE,但它有一个非常陡峭的学习曲线,并且不是很直接安装.如果你在Mac上这样做我会推荐emacsformacosx并安装ECB和自动完成.CMake基本上是一个跨平台构建系统,允许您从一个源树构建许多不同的项目文件(Visual Studio,Xcode,Eclipse等).就像emacs一样,这是超级强大的,但有点陡峭的学习曲线.如果你想马上入门,你可能会想要从Xcode和Eclipse开始.如果您正在使用PC进行开发,则需要使用Mac VM或Hackintosh来使用Xcode和cygwin来使用NDK for android(Macbook Pro用户可以立即获得乐趣,而且不会有任何麻烦).
原生Android开发肯定要困难得多.您不仅需要更多设备分段才能应对,而且本机调试不是很直接.您必须在设备上运行GDB服务器并与其连接以设置断点,并且许多人通过命令行执行此操作.如果你想要一个基于GUI的IDE,我听说有些人在Tegra Tools for Eclipse上取得了成功.
我肯定会建议首先在iOS上进行开发,因为您可以从IDE获得更强大的工具.您可以轻松跟踪内存泄漏,配置文件代码,设置断点;)等.一旦您在iOS上开发功能,您就可以与.mk文件和Android本机开发的其他优点进行搏斗.
以下是iOS的核心对象和生命周期的一些信息:
对于Android:
只要您熟悉操作系统并尊重应用程序的生命周期,您就可以自由地调用C++逻辑.您可以直接使用iOS执行此操作,但使用Android时,您必须通过JNI对呼叫进行编组.如果您封装了特定于平台的平台,则可以在两个平台之间共享C++逻辑.
我是C++的大力倡导者,但使用它的选择取决于这些平台的情况.C++不是这些平台的流行选择,因此你找不到那么多的文档(你自己很多时候都是这样).如果你不熟悉C++(你熟悉RAII,设计模式,STL吗?),复杂性可能会有所提高.
以下是一些可能有意义的情况:
我不是说你必须在这些情况下使用C++,因为许多人已经在Objective-C中开发了游戏.我只是说如果您需要充分利用硬件或者只是想要更便携的东西,可能需要考虑.
| 归档时间: |
|
| 查看次数: |
22866 次 |
| 最近记录: |