当shift键关闭时,没有鼠标滚轮事件(shift +鼠标滚轮事件?)

时间:2016-02-23 13:32:09

标签: events lisp sdl common-lisp sbcl

我正在尝试使用 lispbuilder-sdl 管理lisp中的一些事件。

到目前为止,我得到了这个。

;; Load package :
(ql:quickload "lispbuilder-sdl")

;; main definition:
(defun main (argv)
  (defparameter *ticks* 0)
  (sdl:with-init ()
    (sdl:window 100 100 :title-caption "test")
    (sdl:with-events ()
      (setf (sdl:frame-rate) 60)
      (:quit-event () (progn (sdl:quit-image) (exit) t))
      (:mouse-button-down-event 
       (:button button :x x :y y)
       (format t "~&LSHIFT: ~a RSHIFT: ~a BUTTON: ~a X: ~d Y: ~d" 
               (sdl:get-key-state :sdl-key-lshift) 
               (sdl:get-key-state :sdl-key-rshift) 
               button x y))
      (:key-down-event 
       (:key key)
       (format t "~& KEY: ~a" key))
      (:idle ()))))



;; Entrypoint :
(sb-int:with-float-traps-masked (:invalid :inexact :overflow) (main *posix-argv*))

如果我启动它,会出现一个窗口,我可以点击并滚动,我得到一个输出来描述按下的键和按钮的状态。如果我按下一个键,也一样。细

但是当我按住Shift键时会发生一些奇怪的事情。

如果我这样做,点击时我仍然有输出。但不是滚动时(鼠标滚轮事件)。

所以我猜鼠标滚轮事件只是在换班(向右或向左)时才触发。但只有换档键,我甚至不知道为什么。

所以我不能处理shift +鼠标滚轮事件。

有什么想法吗?

NB :我在OSX上使用的SBCL版本是1.2.11但它在Ubuntu上同时适用于1.3.2和1.2.11。

0 个答案:

没有答案