如何同时检测到Python中的多个按键?

How do I detect multiple keypresses in python all at the same time?(如何同时检测到Python中的多个按键?)

本文介绍了如何同时检测到Python中的多个按键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望沿对角线移动我的机器人小车,以便检测"w"是否与"d"或"a"一起按下。

如果我要使用"w"、"a"、"s"、"d"作为我的密钥。

我现在拥有的是这样的

from curtsies import Input  
with Input(keynames='curses') as input_generator:
    for key in input_generator:
        print(key)
        if key == 'w':
             #move forward
        if key == 's':
             #move backward
        if key == 'a':
             #move left
        if key == 'd':
             #move right
        if key == ' ':
             #stop

但我希望我的程序是这样的:

while True:
    while keypressed('w'):
        #move forward
    while keypressed('s'):
        #move backward
    while keypressed('a'):
        #move left
    while keypressed('d'):
        #move right
    while keypressed('w')&&keypressed('a'):
        #move forward left diagonally
    while keypressed('w')&&keypressed('d'):
        #move forward right diagonally

我还想知道钥匙什么时候松开,这样我就可以让车停下来。从本质上讲,我希望赛车在GTA或NFS等游戏中的工作方式与赛车完全相同……

实现这一目标的最简单方法是什么?代码越轻越好......

推荐答案

最好的方法是使用PYGAME模块。pygame.key.get_pressed()返回一次按下的所有键的列表:

例如,用于多次按键

if keys[pygame.K_w] and keys[pygame.K_a]:
    #Do something

有关详细信息,请参阅documentation。

这篇关于如何同时检测到Python中的多个按键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何同时检测到Python中的多个按键?