Цикл Pygame for повторяется один раз, а затем не повторяется снова - PullRequest
0 голосов
/ 30 апреля 2019

По сути, я беру список врагов (в строке 1), который содержит список координат и перебирает каждую пару в списке врагов внизу.

Я хочупройти через каждого врага в списке, получить координату y, добавить 10, а затем перейти к следующему врагу и добавить 10, и так далее, и так далее.По какой-то причине он добавляет 10 ОДИН РАЗ, а затем останавливается, и враги не падают на экран.Я не знаю, почему это происходит.Почему он больше не проходит через цикл for?Огромное спасибо за любую помощь.

ПРИМЕЧАНИЕ. Я удалил некоторый код в верхней части страницы, чтобы не вводить в заблуждение.Функция update () - это просто функция отражения пигмея.

enemies = [[100,0], [150,0]]
while True:

    for enemy in enemies:

        x = enemy[0]
        y = enemy[1]
        y += 10
        pygame.draw.rect(screen, (255,0,0), (x, y,10,10))

    # uses flip to update the screen
    update()
    # FPS
    clock.tick(20)

1 Ответ

1 голос
/ 30 апреля 2019

Вы пытаетесь изменить локальную переменную, а не значение в списке. Вам необходимо написать:

enemy[1] += 10

Поскольку целые числа являются неизменяемыми (их нельзя изменить), строку y = enemy[1] можно представить как ", скопируйте значение из enemy[1] в y" .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...