
Зачем в данном python коде (c подключённой библиотекой pygame) нужна строчка в конце: strela.push = False?
if e.key == pygame.K_SPACE: if strela.push == True: strela.x = hero.x+15 strela.y = hero.y-10 strela.push = False
P.S Этот кусок кода прописывает появление стрелы рядом с героем при нажатии на клавишу
2Answers

Еще может заинтересовать:

Без более расширенного куска кода сказать это трудно. Что есть push
? Что есть strela
? Как происходит отрисовка?
Настолько я понимаю, strela
это ваш самописный спрайт, что я бы не рекомендовал использовать. Попробуйте использовать массив спрайтов, который уже есть в pygame: pygame.sprite.Sprite
и pygame.sprite.Group
В итоге, ваш код должен быть похож на что-то вроде этого:
if e.key == pygame.K_SPACE and hero.arrow_count > 0 arrow_sprite_group.add(Arrow(hero.x - 10, hero.y - 10, ...))
Где arrow_sprite_group
— группа страйтов со стрелами, pygame.sprite.Group
Где Arrow
— класс стрелы, на базе pygame.sprite.Sprite
PS. А push = False
там для того, чтобы нельзя было по нажатию space стрелу возвращать к герою, если я правильно понял логику кода

Насколько я понимаю то это для того чтоб при нажатии
пробела действия выполнялось только один раз