0

我正在使用 wxHaskell 来显示简单 Haskell 游戏的 GUI。

我有一个问题:我正在编写简单游戏的 GUI 部分。当游戏状态更新时,GUI 模块的功能之一被调用并传递新的游戏状态参数。现在必须更新 gui。GUI 是几个矩形,GUI 的更新只是在旧矩形上绘制一些新矩形。

但是,要绘制矩形,我需要将设备上下文 DC 作为参数传递。由于包含我的矩形的面板生成的“上漆”事件,板的第一次绘画完成了。在 Paint 处理程序上必须有签名:

DC a -> Rect -> IO ()

当事件发生时,直流通过并显示板。

我的问题:如何获得 DC?

或替代问题:如果事件处理程序需要特定签名 - 我如何将其他参数传递给处理程序?

4

1 回答 1

0


看看功能repaint :: w -> IO ()。您传入要重新粉刷并且不需要直流电的框架/面板。我通过以下pdf找到了该功能。非常好的wx教程。作者也在构建一个简单的游戏。可能会有所帮助。http://web.archive.org/web/20120211184204/http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf

于 2014-10-01T09:53:46.547 回答