【问题标题】:How mature is SDL for iPhone?SDL for iPhone 有多成熟?
【发布时间】:2009-02-28 03:44:42
【问题描述】:

一段时间以来,我一直在考虑尝试将我最喜欢的经典 PC 游戏之一,The Ur-Quan Masters(又名Star Control 2)移植到 iPhone。 UQM 的所有图形、声音、输入和其他游戏内容都使用 SDL,而且似乎确实有一个将 SDL 移植到 iPhone 的端口,但目前看起来还不是很成熟。

有人测试过 iPhone SDL 端口吗?效果如何?将这个已经是跨平台代码的项目带到 iPhone 上,我可以期待什么样的问题?

如果 SDL 不是一个选项,任何人都可以推荐一个替代框架来查看它,以弥合 SDL 与 OpenGL ES 和 Core Audio 等原生库之间的差距吗?还是对这些框架进行编码是最佳选择?

编辑添加:这是 UQM 论坛上关于做 iPhone 移植的forum thread 的链接。

【问题讨论】:

  • 我只是在想同样的事情(应该有 iPhone 版本的 Starcon)——但我一直在试图弄清楚近战控制如何工作。无论如何,在你的鞋子里,我只是直接向 OpenGL 编码,但我没有足够的 iPhone 经验来权威地回答。
  • 看看我链接的论坛主题,那里有一些关于可能的控制方案的讨论。
  • 其他人需要注意的是“SDL”是简单的 DirectMedia 层:http://www.libsdl.org/

标签: iphone cross-platform sdl


【解决方案1】:

更新
这个答案真的过时了,所以你可以停止投票!

我不再使用 SDL 进行 iPhone 开发,因为它不适合 iPhone 型号。例如SDL 坚持拥有 main(),音频子系统不知道 AudioSessions,很难了解视图方向的变化等。很高兴看到熟悉的面孔,但最终 SDL 引入的问题比它解决的要多。

2009 年答案
svn 版本对我来说很好用。

我遇到了一个问题,那就是atexit(SDL_Quit) 中的崩溃。

所以我禁用了清理。

另外,库名称不合理,但您可以更改它。

对我来说最困难的部分是将我的 SDL 代码移植到 SDL-1.3,并将我的 OpenGL 代码移植到 OpenGLES。

OpenGLES 可以正常工作,加速度计显示为 3 轴操纵杆, 声音很扎实。

我给 iPhone SDL 4.5 满分 5 星。

【讨论】:

  • 我在别处读到 SDL 端口不能很好地处理较新的 SDK。您使用的是什么操作系统版本?
  • 更新:我当时使用的是 2.2,最后不得不更换 SDL,因为它不能很好地处理旧的音频 SDK,而且它并不真正“适合”iPhone 型号。对于 iPhone 初学者来说,它仍然是一个不错的入口。我应该更新我的答案。
  • 你现在用什么代替?
  • 图形:UIKit (EAGLContext & UIViewControllers),音频:CoreAudio Audio Units、AudioQueues 等
【解决方案2】:

iPhone 端口按预期工作,并且确实有点未完成的感觉。 交付时,与 SDK 集成并不容易,这对于某些游戏来说可能没问题,但我认为大多数用户希望今天的游戏有更多的功能,比如社交网络连接。

幸运的是,只要稍加努力,您就可以将大部分 iPhone SDK 与 SDL 结合使用。

在此处查看我的教程,Bridging the Gap

和博客上的Simple DirectMedia Layer Forums

SDL 往往会弄乱表格视图中的触摸事件,但您可以通过运行单独的 cfrunloop 来解决此问题。

性能接近于普通香草OpenGL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2012-01-17
    • 2010-09-30
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多