我正在用 Haskell Gloss 制作 Pacman。现在我正试图退出游戏,一旦游戏板上的所有筹码都被吃豆人吃掉了。我有检查是否是这种情况的功能,但在那之后我找不到退出游戏的方法。
这是因为我没有返回 IO a 的函数(因为 exitWith 输出)。
这是我的 Main.hs 的代码:
window :: Display
window = FullScreen
background :: Color
background = black
fps :: Int
fps = 5
main :: IO ()
main = playIO (InWindow "Pacman" (600, 600) (0, 0)) -- Or FullScreen
background -- Background color
fps -- Frames per second
initialState -- Initial state
view -- View function
input -- Event function
step -- Step function from controller
playIO 函数具有以下类型签名:
playIO :: Display ->
Color ->
Int ->
world ->
(world -> IO Picture) ->
(Event -> world -> IO world) ->
(Float -> world -> IO world) ->
IO ()
我可能忽略了一些东西,但是一旦有赢家,我想退出 playIO 函数的循环。以下功能可能会有所帮助:
exitWith :: ExitCode -> IO a
非常感谢任何建议,我还是 Haskell/Gloss 的新手。