我正在用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的新手。