haskell - 如何在 playIO 功能中退出游戏?
问题描述
我正在用 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 的新手。
解决方案
推荐阅读
- android - Ionic V4 应用程序无法在 android 4.4.2 上运行,但可以运行
- r - R中单个长命令(不是循环)的进度条
- python - 如何调整热图单元格的高度/宽度?
- html - 如何在“单击”磁贴时使用 Flex 磁贴网格,并使用全页宽度扩展器
- python-3.x - 从字典中删除多次出现的所有值
- c++ - 我应该总是使用 shared_ptr 创建一个类实例(而不仅仅是新的)吗?
- android - 如何在 Kotlin 中声明空数组?
- python - 如何在 Numpy 2D 随机列表中添加条件
- visual-studio-code - VS Code 中的调试器中断命令?
- c - 在 Visual Studio 中将 C 模块链接到 MASM