微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ocaml图形事件

如何解决Ocaml图形事件

在这里使用此功能是为了从键盘获取事件:

let get_move() : string =
let e = Graphics.wait_next_event [Key_pressed] in
let ke = if e.keypressed then Printf.sprintf "%c" e.key else "" in
ke;;

我正在做俄罗斯方块,所以我希望在此函数等待事件时,该团体可以关闭

当前,当它等待事件时,它将“暂停”循环。 我该怎么办?

解决方法

我自己从未使用过Graphics,但是从阅读the documentation开始,我建议在Poll事件中使用loop_at_exit

Graphics.loop_at_exit [Key_pressed; Poll] begin fun e ->
  if e.keypressed then
    ...
  else
    ...
end

或者使用自己的循环,使用key_pressed检查是否可以不阻塞地调用read_key

let get_move () : char option =
  if Graphics.key_pressed () then
    Some (Graphics.read_key ())
  else
    None

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。