我正在使用wxHaskell来显示简单的Haskell游戏的GUI。
我有一个问题:我正在编写简单游戏的GUI部分。当游戏状态被更新时,正在调用GUI模块的一个功能并且传递新的游戏状态参数。 gui必须立即更新。 GUI是几个矩形,GUI的更新只是在旧的矩形上绘制一些新的矩形。
但是,要绘制矩形,我需要将设备上下文DC作为参数传递。首次对电路板进行涂漆是因为涂料和涂料的结果。由包含我的矩形的面板生成的事件。 On Paint处理程序必须具有签名:
DC a -> Rect -> IO ()
当事件发生时,会传递直流电并显示电路板。
我的问题:如何获得DC?
或备用问题:如果事件处理程序需要特定签名 - 如何将其他参数传递给处理程序?
答案 0 :(得分:0)
看一下函数repaint :: w -> IO ()
。您传递了想要重新绘制的框架/面板,而不需要直流。我通过以下pdf找到了该功能。非常好的wx教程。作者也在构建一个简单的游戏。可能会有所帮助。 http://web.archive.org/web/20120211184204/http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf