简单的Haskell图形库?

时间:2009-07-08 01:54:43

标签: graphics haskell

我想尝试一下Haskell,我希望能够编写一个小型的2D街机游戏(俄罗斯方块或突破)。 你能推荐一个简单的图形库来帮助我快速入门吗?

顺便说一下,我一直在尝试使用SDL和wxWidgets,但由于依赖性问题,还没有成功运行任何样本,正在努力...

3 个答案:

答案 0 :(得分:11)

这不是一个“简单”的库,但是有很多关于OpenGL和GLUT的在线信息,以及一些非常好的教程和大量的示例代码。

您遇到的最大问题是Haskell中的OpenGL和GLUT绑定不包含它们绑定的库。 (对于wxWidgets也是如此。)许多Linux发行版捆绑了OpenGL二进制文件,但不包括Windows。 Haskell Platform应该解决这个问题,但对我来说似乎没有。

因此,假设您在Windows上安装,我建议您尝试这样做:

  1. 按照in this blog的说明操作。它们很复杂 - 涉及安装MinGW,MSys以及从SourceForge手工编译GLUT项目,但这是我使OpenGL工作的唯一方法。我现在已成功安装在三台独立的机器上,包括XP和Vista,所以我可以肯定地说这些是非常好的方向。
  2. 一旦确实有效,请查看这些two awesome教程。他们真的让我看到了Haskell在图形方面的强大功能。您会发现所涉及的代码比您预期的要简单得多。
  3. 查看Haskell OpenGL page上的示例游戏。它们非常具有实验性 - 这很好,因为它意味着需要的代码少于生产系统中的代码 - 但它们也非常复杂。 (是的,已经有超过一个简单的俄罗斯方块实现,但不要让它阻止你。)
  4. 示例代码的另一个好的来源是Haskell的GLUT绑定本身。查找examples目录,您将从OpenGL Red Book中找到许多示例代码端口。
  5. OpenGL是非常有状态的,所以如果你尚未完全使用Monads,你可能会发现Haskell代码有点令人生畏。我正在使用我的OpenGL实验作为最终围绕这个概念的动机。

    祝你好运!

答案 1 :(得分:4)

您是否仔细阅读了以下列表:

Haskell Graphics Libraries: 这里似乎有很多与OpenGL,SDL和其他图形库的接口。

Haskell GUI: 这里也有一些wxWidget库。

答案 2 :(得分:1)

Cairo是用C编写的,但有haskell绑定,也许尝试这可能是一个好主意。我只使用过它的python绑定,但这些似乎运行良好。