使用Python来下一场深夜雪

效果图:(真实情况是动态的)

完整代码:

python 复制代码
import turtle
import random

# 初始化画布
turtle.bgcolor("#001f3f")  # 偏深蓝色的背景
turtle.title("下雪的画面")
turtle.speed(0)
turtle.hideturtle()
turtle.tracer(0)

# 雪花的数量
num_snowflakes = 200
snowflakes = []

# 创建雪花
for _ in range(num_snowflakes):
    x = random.randint(-300, 300)
    y = random.randint(0, 600)
    size = random.randint(2, 6)  # 随机大小
    fall_speed = random.uniform(3, 6)  # 增加下落速度
    snowflakes.append([x, y, size, fall_speed])

def draw_snowflake(x, y, size):
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    turtle.dot(size, "white")  # 使用随机大小的雪花

def fall_snowflakes():
    turtle.clear()
    for snowflake in snowflakes:
        x, y, size, fall_speed = snowflake
        draw_snowflake(x, y, size)
        # 更新雪花的位置
        y -= fall_speed
        if y < -300:  # 如果雪花落到屏幕底部,重置位置
            y = random.randint(600, 800)
            x = random.randint(-300, 300)
            size = random.randint(2, 6)  # 随机大小
            fall_speed = random.uniform(3, 6)  # 增加下落速度
        snowflake[0], snowflake[1], snowflake[2], snowflake[3] = x, y, size, fall_speed  # 更新雪花位置、大小和速度

    turtle.update()
    turtle.ontimer(fall_snowflakes, 20)  # 每20毫秒更新一次

def main():
    fall_snowflakes()
    turtle.done()

if __name__ == "__main__":
    main()
相关推荐
charlie11451419112 分钟前
C++ STL CookBook
开发语言·c++·stl·c++20
袁袁袁袁满12 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
ELI_He99918 分钟前
PHP中替换某个包或某个类
开发语言·php
m0_7482361126 分钟前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
倔强的石头10634 分钟前
【C++指南】类和对象(九):内部类
开发语言·c++
老大白菜34 分钟前
Python 爬虫技术指南
python
Watermelo61738 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
古希腊掌管学习的神2 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
半盏茶香2 小时前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J3 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab