我目前正在使用C ++ / SFML开发游戏,我知道Google Play游戏通常是C或Java,但有可能创建一个应用程序" (不一定是游戏??)对于用C ++编写的Google Play。我明白这样做你必须使用Android SDK(我不确定SDK如何在这个时间点工作)或类似的软件如Marmalade必须与c ++代码一起使用才能制作它在Android上运行。 两个问题:
1)是否有使用Android SDK无法移植到Google Play / Android的c ++代码元素(如指针)?
2)使用Android SDK或类似软件将c ++代码移植到Google Play / Android有多难?
提前致谢
答案 0 :(得分:1)
您可以使用NDK在Android上编译C ++。
对于SFML,它显然不适用于Android':'
使用SFML,您的应用程序可以编译并在开箱即用 最常见的操作系统:Windows,Linux,Mac OS X等 Android& iOS.With SFML,您的应用程序可以编译和用完 最常见的操作系统上的框:Windows,Linux,Mac OS X. 很快Android&的iOS 强>
至于端口有多难 - 显然这是一种意见,但根据我的经验,Android原生开发比Android JavaVM或桌面开发困难得多。
答案 1 :(得分:1)
我不会谈论SFML,因为我没有听说过它,并将专注于C ++方面。我以原生iOS和Android为生。在这种情况下,它意味着Java使用Android SDK和Objective C for iOS。
在处理了两个项目之后,将业务逻辑和类从一个项目移植到另一个项目非常容易。我已经很多年没有接触过C ++了,但是除非你做了一些真正有多重继承的东西,否则编码本身就会很简单。
我遇到困难(你会更多)是GUI的一面。如果您来自PC编码,则需要对GUI代码进行大量修改。一个例外是具有响应式设计的Web GUI,但这会打开许多其他问题,例如没有本机API和有限的功能。
关于NDK,您需要了解这是真正的低级代码,用机器语言编写。这意味着您不喜欢一次编写,在Java的任何地方运行,需要为ARM和Intel设备编译。英特尔在这个市场上传统上一直很弱,但我不会打赌他们。
对于iOS,它意味着XCode将为ARMv7,ARMv7s,ARM64(以及用于模拟器的IA-64)生成重复代码。无论如何,这无济于事。
另一种方法是使用真正的网络应用程序。抛弃这个传统的C ++并转向HTML和JavaScript。如果您将游戏移植到网络上,您将能够在任何地方运行它。 iOS(UIWebView)和Android(WebView)都支持Web容器。当然,这将伴随着本周新的令人兴奋的框架。