Включить спрайты в двоичный файл - библиотека блеска - PullRequest
4 голосов
/ 06 марта 2019

Я пытаюсь создать игру с нестабильными птицами на Хаскеле, и я хотел бы знать, есть ли способ "скомпилировать" файлы .bmp в двоичный файл? Так что я могу поделиться только исполняемым файлом и мне не нужна папка со спрайтами.

Я использую gloss-1.13.0.1 и загружаю BMP как

bg0Pic = unsafePerformIO . loadBMP $ "bg0.bmp"

Я знаю, unsafePerformIO - это нехорошая практика, но это пока не мое дело. Должен ли я использовать другой подход, чтобы компилятор знал, что мне нужно это изображение, или просто нет способа сделать это?

Можно найти весь код на GitHub

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Один из подходов заключается в использовании файлов данных с cabal.

Идея состоит в том, что вы добавляете все файлы данных (текст, изображения, спрайты, другие двоичные файлы), которые вы хотите связать с вашим приложением, и получаете доступ во время выполнения под заголовком Data-Files в вашем файле .cabal.

Это заставит cabal сгенерировать для вас модуль Paths, к которому вы сможете обращаться в любом модуле, в котором он нуждается.

Более подробную информацию можно найти здесь !

2 голосов
/ 06 марта 2019

Вы можете использовать пакет для встраивания файлов, который использует Template Haskell для встраивания файлов.

https://www.stackage.org/package/file-embed

...