如何在playIO功能中退出游戏?

时间:2018-11-06 10:09:10

标签: haskell gloss

我正在用Haskell Gloss制作Pacman。现在,一旦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的新手。

0 个答案:

没有答案