用于2D绘图的Haskell库

时间:2011-04-10 13:56:04

标签: graphics haskell sdl

我基本上想要创建一个全屏窗口并在其上绘制不同颜色和大小的文本(并且还更新屏幕)。我在python中使用了pygame,我正在寻找一个类似的库(应该很容易使用)。

+1,如果它也处理输入......

4 个答案:

答案 0 :(得分:65)

Graphics section on Hackage中列出的那样,我将快速浏览所有这些库,而不是选择单个库。

基本框架:

<强>的OpenGL

<强> GTK

cabal install cairo

<强> QTHaskell

  • 使用相对较少,但使用时会特别使用。
  • 由于C ++问题,找不到Hackage,here
  • 知名用户:Nikki and the Robots,商业游戏。

<强> SDL

cabal install sdl

<强> X11

cabal install X11

尊敬的Unix用户界面。

示例:xmonad

<强> GD

cabal install gd

GD图形系统。 Package on hackage

示例:wordcloudsparklines

<强> HOgre

cabal install hogre

绑定到食人魔游戏graphics system

现在,除了这些游戏层,还有许多更高级别的框架和工具:

<强>图表

cabal install diagrams

基于cairo构建的2D矢量图(例如用于数学)。

<强>光泽

cabal install gloss

2D图形,非常简单的界面,相对较新。请参阅TomMD的评论。

<强>了Cal3D

cabal install cal3d

绑定到Cal3D animation package

<强>黑板

cabal install chalkboard

基于OpenGL的组合器,用于生成图像,用于教学。

<强> TeaHS

cabal install TeaHS

用于创建2D游戏的简单库,受Ruby library Tea的启发。

答案 1 :(得分:19)

如果您正在寻找专业的游戏库,您可以找到许多选项hereFunGEn可能是这些库中最好的选择。但是,你的问题似乎暗示游戏库会有点矫枉过正,如果你想做的就是绘制文本并接收输入。在这种情况下,您可以选择更简单的内容,例如HOpenGLhsSDL。还列出了其他几个库here

编辑:经过一番研究后,您可能会使用haskgame做得很好。我自己从未使用它,但看起来它有一些功能here可以完全满足您的需求。

答案 2 :(得分:16)

我建议使用新的Gloss library作为获得良好结果的简便方法。

  

光泽隐藏了绘图简单的痛苦   矢量图形背后一个很好的数据   类型和一些显示功能。   Gloss使用OpenGL和GLUT   引擎盖,但你不必担心   关于任何这些。搞点凉爽   在10分钟内在屏幕上显示。

还有nice examples,例如:

hello world

enter image description here

和构建flocking simulators

的一个很好的示例

或者,如果它是您想要操作的向量和文本,则cairo顶部的diagrams包可以产生非常好的结果。

答案 3 :(得分:3)

你可以使用Qt。这就是跨平台Nikki And The Robots正在使用的内容。您可以查看他们的源代码并查看他们正在做的事情。