gpt4 book ai didi

common-lisp - 与 ltk 共同的 Lisp 鼠标位置

转载 作者:行者123 更新时间:2023-12-04 17:29:51 25 4
gpt4 key购买 nike

我正在用 Common Lisp 制作一个简单的小程序,我想使用鼠标移动来控制它。我使用 LTK 作为窗口。我找不到任何可以检索鼠标位置的函数。例如,Emacs Lisp 有 (mouse-pixel-position)。我找到了 this on rosetta code ,但没有 Common Lisp 条目。我能做什么?

最佳答案

来自这个 SO 答案的提示:Mouse Position Python Tkinter

并查看 ltk 的文档:http://www.peter-herth.de/ltk/ltkdoc/node16.html

我得到了以下示例来检索由鼠标移动触发的任何事件:

(ql:quickload "ltk")
(in-package :ltk-user)

(defun motion (event)
(format t "~a~&" event))

(with-ltk ()
(bind *tk* "<Motion>" #'motion))

这会打开一个小窗口,里面什么也没有。一旦你把鼠标放在里面,你会得到很多事件:
#S(EVENT
:X 0
:Y 85
:KEYCODE ??
:CHAR ??
:WIDTH ??
:HEIGHT ??
:ROOT-X 700
:ROOT-Y 433
:MOUSE-BUTTON ??)

#S表示我们处理一个名为 EVENT 的结构体,因此我们可以使用 (event-x event) 访问其插槽, event-mouse-button等见 https://lispcookbook.github.io/cl-cookbook/data-structures.html#slot-access

你也可能想加入 freenode 上的 CL 社区,那里有一些游戏开发者。

关于common-lisp - 与 ltk 共同的 Lisp 鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55405140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com