【发布时间】:2012-02-25 01:28:32
【问题描述】:
谁能告诉我Ruby gems rubysdl 和ruby-sdl-ffi 之间的区别,比如速度差异?如果是这样,你更喜欢哪一个?我想知道我正在写的宝石,Rubydraw(位于here)。
提前致谢!
【问题讨论】:
谁能告诉我Ruby gems rubysdl 和ruby-sdl-ffi 之间的区别,比如速度差异?如果是这样,你更喜欢哪一个?我想知道我正在写的宝石,Rubydraw(位于here)。
提前致谢!
【问题讨论】:
我是 ruby-sdl-ffi 的作者。这个问题今天引起了我的注意,所以我回答是为了任何仍然好奇的人的利益。
主要区别在于 ruby-sdl-ffi 是纯 Ruby 代码,通过 FFI(外部函数接口)访问 SDL(和相关库),而 rubysdl 是用 C 编写的扩展,链接到 SDL(和相关库) .每种方法都有优点和缺点。 (显然,我觉得 FFI 是更好的方法,否则我不会费心写 ruby-sdl-ffi。)
这两个库都提供了相似的功能集,但存在一些差异(如下所述)。他们都可以使用图像、声音/音乐以及来自键盘、鼠标和/或操纵杆/游戏手柄的用户输入来进行 2D 游戏。它们还可以与 OpenGL 一起使用(通过 ruby-opengl 或 ffi-opengl)来创建硬件加速的 3D 游戏。它们都可以在 Windows、MacOS X 和 Linux(可能还有其他平台)上使用,尽管 rubysdl 仅适用于 MacOS X,前提是您使用称为“rsdl”的特殊 Ruby 解释器包装器。
我没有运行任何严格的基准测试,因此我无法提供有关原始性能的任何确切数据。我的总体印象是 rubysdl 可能具有轻微的性能优势,但它们足够接近,因此在两个库之间进行选择时,性能并不是主要因素。
我将总结这两个库的优缺点:
ruby-sdl-ffi
rubysdl
【讨论】: