Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 将精灵包含到二进制--Gloss库中_Haskell_Gloss - Fatal编程技术网

Haskell 将精灵包含到二进制--Gloss库中

Haskell 将精灵包含到二进制--Gloss库中,haskell,gloss,Haskell,Gloss,我正在尝试用Haskell制作一个flappy bird游戏,我想知道是否有办法将.bmp文件“编译”成二进制文件?因此,我只能共享可执行文件,而不需要与精灵共享文件夹 我正在使用gloss-1.13.0.1并将bmp加载为 bg0Pic = unsafePerformIO . loadBMP $ "bg0.bmp" 我知道unsafePerformIO不是一个好的做法,但这还不关我的事。我应该使用不同的方法,以便编译器知道我需要该图像,还是根本没有办法做到这一点 可以在上找到完整的代码一种方

我正在尝试用Haskell制作一个flappy bird游戏,我想知道是否有办法将.bmp文件“编译”成二进制文件?因此,我只能共享可执行文件,而不需要与精灵共享文件夹

我正在使用gloss-1.13.0.1并将bmp加载为

bg0Pic = unsafePerformIO . loadBMP $ "bg0.bmp"
我知道
unsafePerformIO
不是一个好的做法,但这还不关我的事。我应该使用不同的方法,以便编译器知道我需要该图像,还是根本没有办法做到这一点


可以在

上找到完整的代码一种方法是将数据文件用于阴谋集团

这样做的目的是在.cabal文件的
数据文件
标题下添加所有要与应用程序捆绑并在运行时访问的数据文件(文本、图像、精灵、其他二进制文件)

这将导致阴谋集团为您生成一个路径模块,您可以在任何模块中访问它


更多信息可以找到

您可以使用文件嵌入包,它使用模板Haskell来嵌入文件


这似乎只是将文件与二进制文件链接,但它仍然需要与cabal一起安装。我正在寻找一种将其嵌入二进制文件的方法,这样它就独立了。我似乎不知道如何使用它,而且文档也不是最好的。请你举个例子,说明我需要如何利用我的代码获得bmpOk,看起来我需要将Q expr转换成ByteString,然后我可以使用
bitmapOfByteString
你可以使用
$(embedFile“file.bmp”)
之类的东西。您需要启用
模板haskell
pragma。