draw.rect в словаре не работает в питон

Вставил функцию draw.rect в словарь. Функция не работает. Почему? Взарание спаибо.

import pygame as pg
pg.init()
import math
sc = pg.display.set_mode((1280, 660))
tp = {0:pg.draw.circle(sc, (25, 4, 11), (1122, 50), 25, 50), 3:pg.draw.circle(sc, (50, 7, 23), (1122, 50), 25, 50), 6:pg.draw.circle(sc, (76, 11, 34), (1122, 50), 25, 50), 9:pg.draw.circle(sc, (101, 14, 46), (1122, 50), 25, 50), 12:pg.draw.circle(sc, (126, 18, 57), (1122, 50), 25,50), 15:pg.draw.circle(sc, (254, 254, 254), (1122, 50), 25, 50), 15:pg.draw.circle(sc, (252, 35, 114), (1122, 50), 25, 50)}
t = 0
run = True
clock = pg.time.Clock()
while run:
    clock.tick(60)
    for event in pg.event.get():
        if event.type == pg.QUIT:
            run = False
    sc.fill((0, 0, 0))
    try:
        tp[math.floor(t/3)*3]
    except:
        pass
    pg.display.update()
    t += 1
pg.quit()
exit()

Ответы (1 шт):

Автор решения: Alex

Попробуйте поменять код на

# это в самое начало файла, сразу после импортов, как новые функции
def test1:
    pg.draw.circle(sc, (25, 4, 11), (1122, 50), 25, 50))

def test2:
    pg.draw.circle(sc, (255, 4, 11), (1000, 100), 25, 50))

...
tp = {1: test1, 2: test2}
...
tp[1]()

Если в такой конфигурации заработает, то проблема понятна. Вместо кучи определений, возможно, можно найти какой-то более элегантный способ - но в целом я считаю, что всю идею с массивом функций надо как-то переработать и сделать всю обработку в рамках одной функции, просто с кучей сравнений. Проще и понятнее будет, ИМХО.

https://www.pygame.org/docs/ref/draw.html#pygame.draw.rect https://www.pygame.org/docs/ref/rect.html

→ Ссылка