Если ты хочешь сделать "взрыв", т.е. разлёт звёзд из центра, то тебе нужно будет с умом представить сведения о звёздах. Сейчас ты их не хранишь вообще, поэтому у тебя каждый раз звёзды рисуются по разному.
Что нужно знать для разлёта?
1. Координаты центра, откуда идёт разлёт. Я полагаю, это будет
center = (0, 0)
Надеюсь, ты знаешь что такое кортеж.
2. Для каждой звезды нужно знать число её лучей. Также для каждой звезды нужно определить шаг по x и по y. Например, так.
dx = rnd.randint(-5, 5)
dy = rnd.randint(-5, 5)
n_beam = rnd.choice([5,7,9,11,13,15,17])
size = rnd.randint(5, 20)
star = (dx, dy, n_beam, size)
У тебя будет список из множества таких кортежей star.
4. Мы должны знать, сколько шагов мы сделали с момента начала анимации.
step_count = 0
Поначалу 0, потом будет увеличивать.
Сначала генерируешь звёзды.
center = (0, 0)
N = 1000
stars = []
for i in range(N):
dx = rnd.randint(-5, 5) #на сколько пикселей по горизонтали сдвинется звезда за шаг
dy = rnd.randint(-5, 5) #на сколько пикселей по вертикали сдвинется звезда за шаг
n_beam = rnd.choice([5,7,9,11,13,15,17]) #сколько лучей у звезды
size = rnd.randint(5, 20) #размер звезды
star = (dx, dy, n_beam, size) #описание звезды
stars.append(star) #добавляем звезду в массив звёзд
Потом делашеь цикл анимации:
for step in range(100): #сколько кадров анимации сделать
turtle.clear() #тут нужно очистить экран
for star in stars: #перебираем звезды
# определяем координаты центра звезды на этом шаге
pos_x = center[0] + step * star[0]
pos_y = center[1] + step * star[1]
# позиционируем черепашку
main.up()
main.setposition(x + 5,y + 5)
main.down()
# рисуем звезду
starFILL(star[1], star[2])
time.sleep(1.0)
Как-то так. Более аккуратно было бы использовать не кортежи, а классы. Если интересно, отпишись в комментах, объясню.