Уведомления

Группа в Telegram: @pythonsu

#1 Июль 29, 2021 05:43:16

vladimir_vl_vlad
Зарегистрирован: 2021-07-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с анимацией падающих снежинок

Библиотека simple_draw. Хочу сделать анимацию с падающими снежинками, но они у меня падают все одновременно и я не понимаю как каждую сместить по оси y.

 import simple_draw as sd
def snowfall():
    for y in range(480,-20,-5):        
        sd.clear_screen()
        for x in range(10,200,36):
            point_0=sd.get_point(x,y)
            sd.snowflake(center=point_0, length=15, color=sd.COLOR_WHITE, factor_a=0.6, factor_b=0.35, factor_c=60)
        sd.sleep(0.05)
    snowfall()
snowfall()

Офлайн

#2 Июль 29, 2021 13:45:21

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите с анимацией падающих снежинок

vladimir_vl_vlad ну вы же линейно задаете через цикл координаты, вот и получаете. В идеале вам нужно для каждой снежинки отдельно задавать координаты и скорость падения, и потом в цикле менять координаты согласно скорости.
Вот ваш вариант с костылями:

 import simple_draw as sd
def snowfall():
    y_offset =(10, -20, 40, 5, -40, 0 )
    for y in range(480,-20,-5):
        sd.clear_screen()
        i=0
        for x in range(10,200,36):
            point_0=sd.get_point(x,y+y_offset[i])
            i+=1
            sd.snowflake(center=point_0, length=15, color=sd.COLOR_WHITE, factor_a=0.6, factor_b=0.35, factor_c=60)
        sd.sleep(0.05)
snowfall()

вот так уже будет лучше.
 import simple_draw as sd
from random import randint
def snowfall():
    snowflakes = [[i*36, randint(440,500), randint(2,5)] for i in range(10) ]
    # snowflakes списко из снежинок. Снежинка тоже список, где первый индекс х, второй y, а третий скорость падения.
    while True:
        sd.clear_screen()
        for snow_item in snowflakes:
            snow_item[1] = snow_item[1] - snow_item[2]
            point_0=sd.get_point(snow_item[0], snow_item[1])
            sd.snowflake(center=point_0, length=15, color=sd.COLOR_WHITE, factor_a=0.6, factor_b=0.35, factor_c=60)
        sd.sleep(0.05)
snowfall()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 29, 2021 13:49:11)

Офлайн

#3 Июль 29, 2021 15:42:10

vladimir_vl_vlad
Зарегистрирован: 2021-07-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с анимацией падающих снежинок

Спасибо, то что нужно

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version