Форум сайта python.su
Библиотека 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()
Офлайн
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)
Офлайн
Спасибо, то что нужно
Офлайн