问题标签 [gloss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
73 浏览

haskell - Haskel - Gloss:平铺表(或如何从图片中提取区域)

我目前正在为 Haskell 开发基于 tile 的 2d 引擎。所以我目前的任务是提取(=导入)图片的部分。我正在使用Graphics.Gloss.Data.Picture

我的问题如下:我尝试了多种不同的转换方法(请参阅下面的完整代码),但它们都没有产生我希望的结果。

基本图像为:(在此处输入图像描述尺寸为:32x32)

我得到的是:在此处输入图像描述

注意:我尝试了我能想到的所有不同的输入/转换方法,并将它们并排绘制......

现在的问题是:我做错了什么?

完整示例代码:

0 投票
1 回答
64 浏览

haskell - 如何在haskell(光泽)中加载图像数组?

我对 Haskell 很陌生,目前对 monad 还没有很好的理解。我正在使用光泽来制作国际象棋。我面临的问题是加载多个图像。我正在使用loadBMPhaskell 提供的功能来加载图像。它的签名是:

我可以加载单个图像,但无法加载图像数组。

主要问题是我有[IO Picture]类型,但我不知道如何将它变成[Picture].

这东西可能是非常基本的,但我现在无法理解单子。所以请解释你给出的答案。

0 投票
1 回答
96 浏览

haskell - Haskell Gloss,在动画功能中从控制台读取不会更新绘图

我正在haskell中简单地实现LOGO。

对于我使用 Gloss 的图形部分,特别是simulateIO模块中的函数Graphics.Gloss.Interface.IO.Simulate

我用它来制作一个窗口并保存我的程序的状态。问题在于更新,它使用类型的函数,ViewPort -> Float -> model -> IO model其中模型是状态的类型。我不使用 Viweport 和 Float 参数。我从控制台读取了一行,对其进行解析并评估它以获得我在函数末尾返回的新状态。

在第一次执行和更新显示后,它不再更新。当我打印状态时,我可以看到它正在更新,但显示没有。放置一个常量值而不是获取输入可以解决问题,但这也不是很有用:)。

这是我的代码的简短部分:

evalPrint返回IO Env

有没有办法强制重绘?

编辑 看来我的功能运行良好,状态确实正在修改。我认为问题在于该函数env2Pic没有被simulateIO函数调用,只是在开始时调用了几次。

我仍然无法弄清楚为什么。

0 投票
1 回答
66 浏览

haskell - 设置 graphics.gloss haskell

我是 Haskell 的新手,我正在尝试使用一个名为 graphics.gloss 的库,但我不断收到此错误,我不确定到底是什么问题。

先感谢您

0 投票
1 回答
63 浏览

haskell - Haskell 光泽库,如何在模型签名上运行 appendFile 以记录到文件?

这是弹跳球代码。我试图让'appendFile'在更新功能上运行,所以当球从墙上反弹时,'appendFile'会将px和px值写入文件“log.txt”

但我遇到了麻烦,因为“appendFile”只在签名 IO 上运行。而且我不知道如何在这种情况下应用它