我非常需要直接使用鼠标事件。
不使用大爆炸就能得到鼠标事件吗?
也就是说,我想构建一个如下所示的函数:
(define (check-if-button-down mev) (mouse=? mev "button-down"))
但是为了获得mev,输入是从bigbang的鼠标上输入。
关于我:我是球拍节目新手。
发布于 2017-10-06 22:29:16
简短的回答:不完全是。
但是:当发生鼠标事件时,大爆炸模型调用鼠标事件处理程序,因此,如果您想知道鼠标按钮是否被按下,您的世界状态应该包括一个布尔值,指示鼠标按钮是否被按下,而您的鼠标事件处理程序应该返回一个正确更新此布尔值的world状态。
这个架构不适合你有什么原因吗?
发布于 2017-10-07 08:47:30
如果这是一个学生项目,你可能必须坚持大爆炸提供的(见约翰克莱门茨的答案)。
但是,如果您可以使用racket/gui (作为语言#lang racket/gui或作为附加的(require racket/gui)),那么您正在寻找get-current-mouse-state。
例如
#lang racket
(require racket/gui)
(define (mouse-button-down?)
(define-values (pt state)
(get-current-mouse-state))
(if (or (memq 'left state)
(memq 'right state)
(memq 'middle state))
#t
#f))https://stackoverflow.com/questions/46613204
复制相似问题