- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果我从控制台加载 pygame 代码,它会错误地读取触摸屏坐标,但如果我启动到 xwindows,它会正确读取它们。
我已经进入并校准了触摸屏,如果我从控制台运行 evtest,我将得到正确的坐标。只有在 python 中,它才会返回错误的触摸坐标。
我是否缺少一些东西来告诉 python 如何校准?
import sys, pygame
pygame.init()
black = 0, 0, 0
size = width, height = 1280, 800
screen = pygame.display.set_mode(size)
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
print(pygame.mouse.get_pos())
screen.fill(black)
最佳答案
当不在 X11 下运行时,PyGame 将利用 SDL 来处理视频(帧缓冲区)和鼠标/触摸输入(输入事件)。使用触摸屏(而不是传统鼠标),SDL 通常会报告未校准和(可能?)未旋转的坐标,除非您使用 TSLIB。
确保您拥有所有需要的零碎内容:
apt-get install tslib libts-bin
现在,在启动 Python 脚本之前,通过设置一些环境变量来告诉 SDL 使用它:
export SDL_FBDEV=/dev/fb1
export SDL_MOUSEDRV=TSLIB
export SDL_MOUSEDEV=/dev/input/touchscreen
./my_cool_program.py
或者您可以在 Python 脚本中“本地”执行此操作 - 这不会影响 Python 进程之外的环境变量:
import os
os.environ["SDL_FBDEV"] = "/dev/fb1"
os.environ["SDL_MOUSEDRV"] = "TSLIB"
os.environ["SDL_MOUSEDEV"] = "/dev/input/touchscreen"
这应该可以解决几乎所有问题,包括[触摸]屏幕方向。您应该注意检查系统的 fbdev 和输入设备路径的正确性。
如果您想提高触摸屏精度,您可以校准它:
TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate
...您也可以测试它:
TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test
校准数据保存到/etc/pointercal
,因此您在重新启动系统时无需重新校准。
关于python - Pygame.MOUSEBUTTONDOWN 坐标关闭,除非我在 xwindows 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092441/
这个问题有点令人困惑,但为了让它更容易理解,我将首先发布感兴趣的代码块: # Event loop (inner) for event in pygame.event.get(): if e
我的简单问题是如何在 Sprite 或项目上使用 pygame.MOUSEBUTTONDOWN 来触发事件? 例如我有 item_A,并希望当我用鼠标按下该对象时开始播放音乐。 最佳答案 参见http
当 时,我无法检测到该事件鼠标按键 是 按下 . 在问这个问题之前,我试过: import pygame, sys pygame.init() win = pygame.display.set_mod
我正在进行学校大型项目的最后部分。我正在创建一个西蒙游戏,您必须记住颜色并按正确的顺序单击它们。 在方 block 动画闪烁后,我将“usergottaclick”设置为 true。 if other
我正在为我的编程课在 pygame 中重新创建扫雷器,当玩家点击时我无法注册。我有一个名为 get_move(board) 的函数,它将游戏板作为参数并执行以下操作: def get_move(boa
所以我尝试在 pygame 中做一些非常基本的事情。这是我使用它的前几天,所以我是一个初学者。每当我用鼠标按下某物时,我都试图改变它的颜色。我知道如何通过时间来改变颜色,这就是我下面的代码。我试图在下
我目前正在使用 Python 开展一个学校项目,理想情况下,该项目是使用抽象或算法来制作任何程序。然而,我被这个问题困扰了好几天。我使用 Python 和 Pygame 实现来创建视觉测验,并使用按钮
几天前我发布了一个类似的问题,但我已经细化了这个问题:当我在同一个事件循环中同时拥有 MOUSEBUTTONDOWN 和 VIDEORESIZE 时,它确实起作用了...当我按下鼠标时,它还会打印仅当
如果我们有 处理程序: scroll_viewer.PreviewMouseLeftButtonDown scroll_viewer.MouseLeftBu
如果我从控制台加载 pygame 代码,它会错误地读取触摸屏坐标,但如果我启动到 xwindows,它会正确读取它们。 我已经进入并校准了触摸屏,如果我从控制台运行 evtest,我将得到正确的坐标。
我是一名优秀的程序员,十分优秀!