我正在尝试在Haskell中制作一个飞扬的小鸟游戏,我想知道是否有一种方法可以将.bmp文件“编译”为二进制文件?因此,我只能共享可执行文件,不需要带有精灵的文件夹。
我正在使用gloss-1.13.0.1
并将bmp加载为
bg0Pic = unsafePerformIO . loadBMP $ "bg0.bmp"
我知道unsafePerformIO
并不是很好的做法,但这还不是我所关心的。我是否应该使用其他方法,以便编译器知道我需要该图像,还是没有办法做到这一点?
可以在GitHub上找到整个代码
答案 0 :(得分:3)
一种方法是将数据文件与阴谋结合使用。
这个想法是,您要添加所有要与应用程序捆绑在一起的数据文件(文本,图像,子画面,其他二进制文件),并在运行时访问.cabal文件中的Data-Files
标头下。
这将使cabal为您生成一个Paths模块,您可以在需要它的任何模块中访问它。
可以找到更多信息here!
答案 1 :(得分:2)
您可以使用文件嵌入包,该文件包使用Template Haskell嵌入文件。