Оператор if keys [py.K_SPACE] and shootloop == 0:
не должен находиться внутри предложения elif keys[py.K_LEFT] and 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_LEFT
, ни K_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