gpt4 book ai didi

Python:无重复延迟的键盘输入

转载 作者:行者123 更新时间:2023-12-03 11:05:29 27 4
gpt4 key购买 nike

对于那些不知道的人,重复延迟是在按住一个键时,第一个出现的字母和它重复之间的轻微停顿。这在打字时可能是一个有用的功能,但是当您开始编写游戏时,它变得非常烦人。一个例子是当你需要移动一个角色时;它会移动一点点,暂停,然后再次开始移动。 Tkinter 代码:

ball = canvas.create_rectangle(50, 50, 100, 100)
def move():
canvas.move(ball, 0, 3)
canvas.bind_all("<space>", move)

如果按下空格,小球将向下移动 3 个像素,暂停,然后开始正常移动。我想知道是否有任何方法可以避免这种暂停,例如直接从键盘读取的模块,而不是 Windows 处理的键盘。我知道有可能“作弊”,例如,当您预计会发生延迟时自动运行该功能;遗憾的是,这是不准确的,可能会导致不稳定的运动。提前致谢

最佳答案

按下时进行递归循环。或者,至少我是这样做的。

moving = False
def move():
global moving
moving = True
def stop_moving():
global moving
moving = False

def myloop():
global moving
if moving == True:
canvas.move(ball, 0, 3)
root.after(1, myloop)

root.bind('<space>', lambda e: move())
root.bind('<KeyRelease-space>', lambda e: stop_moving())

只需确保在 root.mainloop() 之前调用循环一次
#like this
root.after(1, myloop)
root.mainloop()

关于Python:无重复延迟的键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276357/

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