vmo*_*eco 5 lisp events sdl sbcl common-lisp
我正在尝试使用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*))
Run Code Online (Sandbox Code Playgroud)
如果我启动它,会出现一个窗口,我可以单击并滚动,我得到一个输出来描述按下的按键和按钮的状态.如果我按下一个键,也一样.精细.
但是当我按住shift键时会发生一些奇怪的事情.
如果我这样做,我点击时仍然有输出.但不是滚动时(鼠标滚轮事件).
因此,我认为当换档(向右或向左)向下时,鼠标滚轮事件根本不会被触发.但只有换档键,我甚至不知道为什么.
所以我不能处理shift +鼠标滚轮事件.
任何的想法?
注意:我在OSX上使用的SBCL版本是1.2.11但它在Ubuntu上同时适用于1.3.2和1.2.11.
归档时间: |
|
查看次数: |
247 次 |
最近记录: |