使用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()
相关推荐
IT·小灰灰2 分钟前
Python——自动化发送邮件
运维·网络·后端·python·自动化
狼刀流7 分钟前
(8) cuda分析工具
python·cuda
Algorithm15767 分钟前
JVM是什么,与Java的关系是什么,以及JVM怎么实现的跨平台性
java·开发语言·jvm
Gnevergiveup8 分钟前
2024网鼎杯青龙组Web+Misc部分WP
开发语言·前端·python
边疆.22 分钟前
C++类和对象 (中)
c语言·开发语言·c++·算法
yy_xzz24 分钟前
QT编译报错:-1: error: cannot find -lGL
开发语言·qt
你不讲 wood27 分钟前
使用 Axios 上传大文件分片上传
开发语言·前端·javascript·node.js·html·html5
林浔090635 分钟前
C语言部分输入输出(printf函数与scanf函数,getchar与putchar详解,使用Linux ubuntu)
c语言·开发语言
机器学习之心1 小时前
GCN+BiLSTM多特征输入时间序列预测(Pytorch)
人工智能·pytorch·python·gcn+bilstm
子墨7771 小时前
MySQL学习笔记
python