Проблемы с составным присваиванием и подсчетом переменных - PullRequest
0 голосов
/ 22 марта 2020

Что я хочу сделать:
За каждые десять секунд угол спрайта меняется. Если угол изменяется, добавьте его в переменную степеньChange. Когда вышеупомянутая переменная достигнет пяти, измените переменную дня на единицу и сбросьте переменную changeDegree. Если день достигает месяца или 30 дней, программа заканчивается.

Во время работы программы в консоли будет отображаться день и соответствующая ему температура.

Мой проблема:
Имеются два сценария ios: 1) нет вывода или 2) программа печатает только первые 8 дней и температуру на всех oop.

Вот мой код для справки:

    # create timer event
    change_delay = 10000 # 10 second(s)
    change_event = pg.USEREVENT + 1
    pg.time.set_timer(change_event, change_delay)

    angles = [0, 45, 90, 135, 180, 225, 270, 315]
    while not done:
        for event in pg.event.get():
            if event.type == pg.QUIT:
                done = True

            degreeChange = 0
            day = 0
            temp = [9, 14, 18, 18, 16, 21,
                    27, 23, 19, 25, 28, 28,
                    28, 25, 27, 27, 39, 50,
                    52, 46, 45, 46, 50, 50,
                    46, 46, 41, 43, 55, 61]

            # receive timer event
            if event.type == change_event:
                degreeChange += 1
                if degreeChange == 5:
                    degreeChange = degreeChange - 5
                    day += 1
                    print("day: ", day)
                    print("temp: ", temp[day])
                    if day >= 31:
                        pg.quit()
                for i in range(0, 7):
                # change angle by 45°
                    ball.vel = ball.vel.rotate(angles[i])

Дайте мне знать, если вам нужно увидеть остальную часть моего кода. Спасибо:)

1 Ответ

0 голосов
/ 22 марта 2020
    for event in pg.event.get():
        if event.type == pg.QUIT:
            done = True

        degreeChange = 0
        day = 0

При каждом получении события из очереди событий значения degreeChange и day сбрасываются. Это явно не то, что вам нужно, так как он сбрасывается перед каждой возможной возможностью увеличения degreeChange - таким образом, он может быть только 0 или 1.

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