用于2D绘图的Haskell库

ako*_*sch 39 graphics haskell sdl

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

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

Don*_*art 67

而不是选择单个库,我将快速浏览所有这些库,如Hackage中的Graphics部分所列.

基本框架:

OpenGL的

GTK

cabal install cairo
Run Code Online (Sandbox Code Playgroud)

QTHaskell

  • 相对较少的用途,但在使用时,它被显着使用.
  • 由于C++问题,在此处找不到Hackage
  • 着名用户:Nikki和机器人,一款商业游戏.

SDL

cabal install sdl
Run Code Online (Sandbox Code Playgroud)

X11

cabal install X11
Run Code Online (Sandbox Code Playgroud)

尊敬的Unix用户界面.

示例:xmonad.

GD

cabal install gd
Run Code Online (Sandbox Code Playgroud)

GD图形系统.包裹在hackage上.

示例:wordcloud,sparklines.

HOgre

cabal install hogre
Run Code Online (Sandbox Code Playgroud)

绑定到Ogre游戏图形系统.

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

cabal install diagrams
Run Code Online (Sandbox Code Playgroud)

2D矢量图(例如用于数学),建立在cairo上.

光泽

cabal install gloss
Run Code Online (Sandbox Code Playgroud)

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

了Cal3D

cabal install cal3d
Run Code Online (Sandbox Code Playgroud)

绑定到Cal3D 动画包.

黑板

cabal install chalkboard
Run Code Online (Sandbox Code Playgroud)

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

TeaHS

cabal install TeaHS
Run Code Online (Sandbox Code Playgroud)

一个简单的用于创建2D游戏的,受Ruby库Tea的启发.


Jef*_*rka 19

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

编辑:经过一些研究,你可能会使用haskgame做得很好.我自己从来没有使用它,但看起来它在这里有一些功能可以完全满足您的需求.


Don*_*art 16

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

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

还有很好的例子,例如:

你好,世界

在此输入图像描述

和建立植绒模拟器的一个很好的例子

或者,如果它是您想要操作的矢量和文本,则在cairo顶部的图表包可以产生非常好的结果.

  • 光泽很容易,但它的功能不完整,超出了教育的预期用途.我在Gloss中制作了一个简单的绘图应用程序,发现它的一些错误(破碎的文本位置转换,破碎的窗口至少在XMonad中调整大小,在Gnome环境中渲染时100%的CPU使用,仅举几例)与它的一起减损无法显示和翻译图像(例如:PNG,JPG).最后一个已经部分解决,它现在可以显示位图.回顾一下:我发现Gloss非常简洁易用,但它需要对库本身进行几天的修复和改进. (7认同)