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

由网友(野马踏风来)分享简介:我希望沿对角线移动我的机器人小车,以便检测"w"是否与"d"或"a"一起按下。如果我要使用"w"、"a"、"s"、"d"作为我的密钥。我现在拥有的是这样的from curtsies import Input with Input(keynames='curses') as input_generator:fo...

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

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

50条Python面试试题,很全很重要 记不住的可先收藏

我现在拥有的是这样的

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。

阅读全文

相关推荐

最新文章