Python 多键按键游戏

Python 多键按键游戏,python,pygame,Python,Pygame,我想做一个游戏,如果有一个会射击的小机器人。问题是,它只有在不动的时候才会射击,当我向左或向右移动,或者当我跳的时候它不会射击。当我按下其他键时,我能做些什么让我的barspace键工作吗?我试图在已经存在的关键语句中添加另一个if-key语句,但它不起作用,我的意思是: elif keys[py.K_LEFT] and man.x >= 0: man.x -= man.vel man.right = False man.left = True man.st

我想做一个游戏,如果有一个会射击的小机器人。问题是,它只有在不动的时候才会射击,当我向左或向右移动,或者当我跳的时候它不会射击。当我按下其他键时,我能做些什么让我的barspace键工作吗?我试图在已经存在的关键语句中添加另一个if-key语句,但它不起作用,我的意思是:

elif keys[py.K_LEFT] and man.x >= 0:
    man.x -= man.vel
    man.right = False
    man.left = True
    man.standing = False
    man.idlecount = 0
    man.direction = -1

    if keys [py.K_SPACE] and shootloop == 0:
        if man.left:
            facing = -1

        elif man.right:
            facing = 1

        if len(bullets) < 5:
            man.standing = True
            man.shooting = True
            bullets.append(bulletss(round(man.x + man.lenght//2), round(man.y + man.lenght//2), facing))

        shootloop = 1
elif键[py.K_左]和man.x>=0:
man.x-=man.vel
对=错
左=真
站着的人
man.idlecount=0
方向=-1
如果键[py.K_SPACE]和shootloop==0:
如果男子离开:
正面=-1
伊里夫·曼·赖特:
朝向=1
如果长度(项目符号)<5:
站着
射击=真的
项目符号。附加(项目符号(圆形(man.x+man.lenght//2),圆形(man.y+man.lenght//2),面向))
shootloop=1
我把我的github留在这里,这样你就可以运行程序了。谢谢你的帮助,很抱歉我的代码乱七八糟


如果键[py.K_SPACE]和shootloop==0:语句不应位于
elif键[py.K_LEFT]和man.x>=0:
子句的内部,否则只能在按下左箭头键时进行拍摄

此外,在回购协议中

if keys[py.K_RIGHT] and man.x <= 700:
    # ...
elif keys[py.K_LEFT] and man.x >= 0:
    # ...       
elif keys [py.K_SPACE] and shootloop == 0:

请看这一页。您在此处发布的代码与您的回购协议中的代码不同,您也不应该发布到项目文件的链接,因为您的代码很可能会更改,链接可能会丢失。我还建议您发布项目,以获取有关如何简化和美化代码的提示(您可以在此处添加到您的回购协议的链接)。如果我不把下载图片的链接也放在上面,我怎么能让用户试用我的程序?感谢codereview tipIt的建议,在您将代码发布到这里之前,应该将代码简化为一个最小的、可运行的示例。当然你不必这么做,但这会很好,因为它节省了我们的时间。pygame程序中的图像通常可以替换为简单的
pygame。表面
实例填充不同的颜色。小提示:使用
smoothscale
而不是
scale
,角色看起来会更好。并使用或
convert_alpha
转换曲面以提高性能。谢谢!你知道为什么它工作得很好,除了当我同时跳和向左移动的时候?我有同样的问题,我认为这与我们键盘的硬件限制有关。当我使用左控制键而不是空格键时,它工作正常。
elif keys[py.K_LEFT] and man.x >= 0:
    man.x -= man.vel
    man.right = False
    man.left = True
    man.standing = False
    man.idlecount = 0
    man.direction = -1
else:
    man.standing = True

if keys [py.K_SPACE] and shootloop == 0:
    if man.left:
        facing = -1

    elif man.right:
        facing = 1

    if len(bullets) < 5:
        man.standing = True
        man.shooting = True
        bullets.append(bulletss(round(man.x + man.lenght//2), round(man.y + man.lenght//2), 1))

    shootloop = 1
else:
    man.shooting = False