Вопрос по логике появления объектов

285 просмотра
0
0 Комментариев

Зачем в данном 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 Этот кусок кода прописывает появление стрелы рядом с героем при нажатии на клавишу


Добавить комментарий

2 Answers

Python Опубликовано 12.12.2018
0

Без более расширенного куска кода сказать это трудно. Что есть 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 стрелу возвращать к герою, если я правильно понял логику кода

Добавить комментарий
0

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

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up