5
我試圖使用Gloss庫的play
函數,該函數接受一個事件處理函數,該函數的第一個參數類型爲Event
(根據Hackage documentation)。我正在使用GHC 7.6.3和Gloss 1.8.0.1在Windows上工作。如何訪問Haskell中的Graphics.Gloss事件類型?
這裏是我想要做一個素描:
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
?
謝謝!我今天晚上回到家中,開始閱讀Gloss庫的代碼,導入各種各樣的東西,並計算出來。 –
我猜想我並不理解文檔;沒有導入Graphics.Gloss.Interface.Pure.Game就可以看到那裏的播放功能,所以我認爲其中的其他符號也是可見的。 –
@ user5014:是的,通常這樣的頂級模塊應該重新導出它期望客戶端使用的類型的定義。這可能是一個疏忽。 –