gpt4 book ai didi

python - 多个按键按 Pygame

转载 作者:行者123 更新时间:2023-12-01 08:48:10 25 4
gpt4 key购买 nike

我正在尝试制作一个游戏,其中有一个可以射击的小机器人。问题是它只有在不移动时才会射击,当我向左或向右移动或跳跃时它不会射击。当我按下其他键时,我可以做些什么让我的 barspace 键起作用吗?我尝试将另一个 if key 语句放在已经存在的 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

我将我的 github 留在这里,以便您可以运行该程序。感谢您的帮助,并对我的代码一团糟表示歉意。

https://github.com/20nicolas/Game.git

最佳答案

if keys [py.K_SPACE] 和shootloop == 0: 语句不应位于elif keys[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:

这意味着只有当 K_LEFTK_RIGHT 都没有按下时才会执行,因为这些语句位于同一个 if 中。 .elif 序列。

这个版本适合我:

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

关于python - 多个按键按 Pygame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53232723/

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