5

我正在尝试使用 Gloss 库的play函数,它接受一个事件处理函数,其第一个参数是类型Event(根据Hackage 文档)。我正在使用 GHC 7.6.3 和 Gloss 1.8.0.1 在 Windows 上工作。

这是我正在尝试做的事情的草图:

import Graphics.Gloss

type GameState = [Int]

handleInputEvent :: Event -> GameState -> GameState
handleInputEvent _ = id -- Just stubbed in for now

编译器错误是:

Not in scope: type constructor or class `Event'

如果我进入 WinGHCI 并导入 Graphics.Gloss 并询问它的类型签名play,它看起来像这样:

play ::
  Display
  -> Color
  -> Int
  -> world
  -> (world -> Picture)
  -> (gloss-1.8.0.1:Graphics.Gloss.Internals.Interface.Event.Event
      -> world -> world)
  -> (Float -> world -> world)
  -> IO ()

我猜这与名称Event与其他模块发生冲突有关,因此与 Gloss 中的其他符号的导入方式不同。

我如何与 Haskell 谈论 Gloss' Event

4

1 回答 1

1

如果您在 的类型签名中点击 Hackage 上的链接play,并发现它Event是从 导出的Graphics.Gloss.Interface.Pure.Game,那么只需导入该模块。

于 2013-10-12T21:33:10.150 回答