Простая графическая библиотека Haskell?

Я хотел бы немного экспериментировать с Haskell, и я надеюсь написать небольшую 2D-аркадную игру (Tetris или Breakout). Можете ли вы порекомендовать простую графическую библиотеку, которая поможет мне быстро начать работу?

Кстати, я экспериментировал с SDL и wxWidgets, но еще не успел запустить какие-либо образцы из-за проблем с зависимостями, работая над ним...

Ответы

Ответ 1

Это не совсем "простая" библиотека, но есть много информации в Интернете о OpenGL и GLUT, а также о некоторых очень хороших учебниках и тонне примера кода.

Самая большая проблема, с которой вы сталкиваетесь, заключается в том, что привязки OpenGL и GLUT в Haskell не включают библиотеки, к которым они привязаны. (Это справедливо и для wxWidgets.) Многие дистрибутивы Linux поставляются с объединенными файлами OpenGL, но не с Windows. платформа Haskell должна была исправить это, но мне это не показалось.

Итак, предполагая, что вы устанавливаете в Windows, вот что я рекомендую вам попробовать:

  • Следуйте указаниям в этом блоге к письму. Они сложны - с установкой MinGW, MSys и ручной компиляции проекта GLUT от SourceForge, но это единственный способ заставить OpenGL работать. Теперь я успешно установлен на трех отдельных машинах, включая XP и Vista, поэтому могу с уверенностью сказать, что это очень хорошие направления.
  • Как только это сработает, проверьте два awesome Учебники. Они действительно открыли мне глаза на то, насколько мощный Haskell может быть, когда дело доходит до графики. Вы обнаружите, что этот код намного проще, чем вы ожидали.
  • Просмотрите примеры игр на странице Haskell OpenGL. Они очень экспериментальные - это хорошо, поскольку это означает, что меньше кода пропускается, чем вы можете найти в производственной системе, - но они также удивительно сложны. (И да, там уже более одной реализации Tetris с голыми костями, но не позволяйте этому останавливать вас.)
  • Другим хорошим источником кода примера является собственно привязка Haskell GLUT. Найдите каталог примеров, и вы найдете много портов образца кода из RedGu OpenGL.

OpenGL очень сдержан, поэтому вы можете найти код Haskell немного сложным, если вы еще не полностью собрали Monads. Я использую мои эксперименты OpenGL в качестве мотивации, чтобы окончательно обдумать концепцию.

Удачи!

Ответ 2

Просматривали ли вы следующие списки:

Графические библиотеки Haskell: Здесь, как представляется, имеется довольно много интерфейсов для OpenGL, SDL и других графических библиотек.

Haskell GUI: Там также есть некоторые wxWidget libs.

Ответ 3

Cairo Пишется на C, но имеет привязки haskell, Возможно, это может быть хорошей идеей. Ive только когда-либо использовал свои привязки python, но они, похоже, хорошо работали.