Python Pygame падение объекта
я бы хотел чтобы у меня в игре в случайном месте появлялся метеорит и падал вниз создавая проблемы игроку. Я загрузил картинку метеора meteor = pygame.image.load('met.jpg')
прописал координаты метеора вначале x_met = random.randint(0, 900) y_met = 0 а дальше создал функцию которую вызываю внутри цикла
def drawWindow2(): global y_met
win.blit(meteor, (x_met, 0))
while y_met != 300:
if x_met >= 0:
y_met += 10
win.blit(meteor, (x_met, y_met))
pygame.display.update()
метеорит мигает(как будто пытается сдвинутся но ему мешают) но не двигается с места. Что я упустил?
Ответы (1 шт):
В Pygame есть основной цикл в котором и происходят все события. До смены кадра достаточно переместить ваш метеорит на какое-то расстояние, например y_met += 10, но если вы внутри основного цикла запускаете еще один, который гораздо быстрее, то метеорит "пролетает" весь экран без прорисовки. Вам просто надо убрать цикл while y_met != 300:. Ну и конечно убрать рекурсивный вызов функции.