2012-12-12 233 views
1

我最近为我的一个CS类使用openGL,GLU和C++ for Linux创建了一个Asteroids游戏/应用程序。老师告诉我,如果我把它运行在iPhone上,他会给我额外的功劳。我一直在四处看看,我认为我必须使用iPhone开发工具包将其开发/移植到Objective C中。我的问题是:在iPhone上编译/运行C++代码

  • 这会很容易移植吗?
  • 我可以在Windows或Linux上安装开发套件(我没有Mac)。
  • 是否有另一种方法(快捷方式)来模拟iPhone上的Linux二进制文件?

我还没有尝试过任何东西,因为我想先知道你们的想法。你不必告诉我究竟该做什么,但是如果你能指引我朝着正确的方向,我将非常感激。

谢谢。

+1

首先,你不能在Mac上安装iOS SDK。 [C++在iOS上工作正常](http://stackoverflow.com/questions/5090968/objective-c-for-ios-development),但你需要花费大量的时间适应你的代码。 (例如,您的OpenGL代码必须重写为仅使用OpenGL ES中提供的函数。) –

+1

即使您可以弄清楚如何在除Mac以外的其他产品上生成二进制文件,除非iPhone已越狱,您还需要一份来自苹果将​​该计划部署到iPhone和苹果为此收费。另外,如果你的OpenGL代码使用直接模式(比如glVertex3f),那么不,不支持。即时模式对于真正的图形工作并不真正有用,并且已从最新版本的OpenGL中删除,包括iPhone上的OpenGL ES。 – bames53

+0

@PeterSobot很高兴知道!我在不同的文件中实现了所有的openGL函数(我也可以在Windows中运行应用程序),所以我只需要为OpenGL ES创建一个新的库。感谢您的回答! –

回答

2

那么,如果你不想将程序移植到另一种语言。您可以使用SDL2,它看起来非常稳定,可以在iOS(iPhone/iPad/iPod Touch)上运行。你所要做的就是改变你的代码,然后玩弄控制。您必须从http://hg.libsdl.org/克隆Mercurial回购。它将附带一个README.iOS文件,其中介绍了端口如何工作以及其他一些细节。我不确定它是否支持多点触控,我还没有测试过。另外,你可以在iPhone上使用即时模式,如果你这样做,你就不能使用OpenGL ES 2。你所要做的就是为OpenGL ES 1.1创建一个上下文。

而且你将需要一个Mac,或者你可能会得到一个Hackintosh来编译你的代码,然后运行一个越狱的iPod/iPhone/iPad。

注: 我相信我所听到的一些人的编制在Hackintosh的代码,然后一家苹果专卖店内提交给从Mac应用商店。

+0

感谢您的回答米格尔!我会研究你提供给我的这些信息。 –