on_key_press() 事件阻塞 on_mouse_press() 和 on_mouse_motion() 事件 1 秒
on_key_press() events blocking on_mouse_press() an on_mouse_motion() events for 1 second
所以我正在用 Pyglet 开发一个小游戏,我遇到了这种我不知道如何解决的奇怪行为。这似乎是一个 Pyglet 错误,但奇怪的是我找不到其他用户报告此问题。
问题是按下某个键后,如果我在按下该键后立即左键单击,该事件将被忽略。这是可重复的,总是。有趣的是,如果我右键单击,事件总是运行良好。只有左键单击是问题。按下任何键后 on_mouse_motion() 也会被阻塞 1 秒。如果我不按任何键盘键,所有鼠标事件都可以正常工作。
我已经使用 Pyglet 版本 1.3.0、1.4.10 和 1.5.11 对此进行了测试,并且都具有相同的行为。我还在 2 台不同的计算机上对此进行了测试,行为是相同的。我还尝试了 Vsync ON 和 OFF 以及 pyglet 独有的鼠标 window。使用 Windows 10 和 Python 3.7.4-64b.
这里是重现问题的简单代码,只需按一个键,然后在 1 秒内左键单击:
import pyglet
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print('A key was pressed')
@window.event
def on_mouse_press(x, y, button, modifiers):
print('Mouse event')
pyglet.app.run()
编辑:问题出在 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板。
问题似乎出在 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板:
我将外接鼠标连接到笔记本电脑,问题消失了。
所以我正在用 Pyglet 开发一个小游戏,我遇到了这种我不知道如何解决的奇怪行为。这似乎是一个 Pyglet 错误,但奇怪的是我找不到其他用户报告此问题。
问题是按下某个键后,如果我在按下该键后立即左键单击,该事件将被忽略。这是可重复的,总是。有趣的是,如果我右键单击,事件总是运行良好。只有左键单击是问题。按下任何键后 on_mouse_motion() 也会被阻塞 1 秒。如果我不按任何键盘键,所有鼠标事件都可以正常工作。
我已经使用 Pyglet 版本 1.3.0、1.4.10 和 1.5.11 对此进行了测试,并且都具有相同的行为。我还在 2 台不同的计算机上对此进行了测试,行为是相同的。我还尝试了 Vsync ON 和 OFF 以及 pyglet 独有的鼠标 window。使用 Windows 10 和 Python 3.7.4-64b.
这里是重现问题的简单代码,只需按一个键,然后在 1 秒内左键单击:
import pyglet
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print('A key was pressed')
@window.event
def on_mouse_press(x, y, button, modifiers):
print('Mouse event')
pyglet.app.run()
编辑:问题出在 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板。
问题似乎出在 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板:
我将外接鼠标连接到笔记本电脑,问题消失了。