2011-04-10 55 views
35

我基本上想创建一个全屏窗口并以不同的颜色和大小绘制文本(并且更新屏幕)。我已经在python中使用了pygame,我正在寻找一个类似的库(应该相当容易使用)。Haskell二维绘图库

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

+0

感谢您的所有答案:我将尝试使用haskgame和SDL。 – akosch 2011-04-10 20:09:19

+0

http://github.com/snkkid/LazyFooHaskell,http://web.animal-machine.com:8080/blog/2010/04/getting-started-with-sdl-in-haskell – 2011-04-11 16:47:08

+0

所以,在差不多2多年来,你选择什么样的自由软体,你做了什么有用的事情,2D Haskell的一般经验是什么......? – CoR 2013-01-09 18:48:57

回答

18

如果你正在寻找一个专业的游戏库,你有很多的,你可以找到here选项。 FunGEn可能是你最好的选择。然而,你的问题似乎表明一个游戏库会有点矫枉过正,如果你想要做的就是绘制文本并接收输入。在这种情况下,你可以选择一些简单的东西,比如HOpenGLhsSDL。还有其他几个图书馆here

编辑:经过多一点研究,你可能会用好haskgame。我从来没有用过它,但它看起来有几个功能here,它们完全符合你的要求。

16

我推荐新的Gloss library作为一个简单的方法来获得好的结果。

光泽隐藏绘制简单 矢量图形后面一个很好的数据 类型和几个显示功能的痛苦。 Gloss在 引擎盖下使用了OpenGL和GLUT,但您不必担心 中的任何问题。在10分钟内在屏幕上获得一些很酷的 。

也有nice examples,如:

hello world

enter image description here

和一个很好的例子建设flocking simulators

或者,如果你要处理的载体和文本,开罗顶部的diagrams包可以产生非常好的结果。

+7

光泽度很容易,但对于超出其教育用途的任何东西,其功能都是不完整的。我在Gloss中创建了一个简单的绘图应用程序,发现它的一些缺陷(缺失的文本位置翻译,破窗口至少在XMonad中调整大小,在Gnome环境中渲染时使用100%CPU)无法显示和翻译图像(例如:PNG,JPG)。最后一个已经部分解决,它现在可以显示位图。回顾一下:我发现光泽真的非常简单易用,但它需要几天的时间修复和改进库本身。 – 2011-04-10 17:32:39

+0

对于一些非常简单的东西可以吗?我想用它来形象化一个简单的roguelike。最重要的是无图位图(我将使用瓷砖)。 – Nek 2013-06-26 09:57:25

3

你可以使用Qt。这就是跨平台Nikki And The Robots正在使用的内容。你可以看到他们的源代码,并看看他们在做什么。

64

我不会选择单独的图书馆,而是快速浏览所有图书馆,如Graphics section on Hackage中所列。

基本框架:

的OpenGL

GTK

cabal install cairo 

QTHaskell

  • 相对较少使用,但在使用时,它主要是使用。
  • 不在Hackage,发现here,由于C++问题
  • 着名用户: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 

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启发一个简单的库。

+0

我一直忘记黑板已经更新为编译/运行(它已被打破了一段时间)。 Gill等人的良好工作,并感谢提醒。 – 2011-04-10 19:57:00

+0

伟大的清单!光泽度和图表看起来特别有趣并且与我想要做的相关。 – Nek 2013-06-26 09:56:00