当前位置: 首页 > news >正文

Python - 小玩意 - 圣诞树背景音乐弹窗

import turtle as t
import tkinter as tk
import pygame
import random as r
import threading
import time# 初始化背景音乐
def initialize_music():file = r"./music/周杰伦-蜗牛.mp3"pygame.mixer.init()pygame.mixer.music.load(file)pygame.mixer.music.play()# 画圣诞树
def draw_christmas_tree():n = 100.0t.pensize(10)t.speed("fastest")t.screensize(888, 700, "black")t.left(90)t.forward(3 * n)t.color("orange", "yellow")t.begin_fill()t.left(126)for i in range(5):t.forward(n / 5)t.right(144)t.forward(n / 5)t.left(72)t.end_fill()t.right(126)t.color("dark green")t.backward(n * 4.8)def draw_light():if r.randint(0, 30) == 0:t.color('tomato')t.circle(6)elif r.randint(0, 30) == 1:t.color('orange')t.circle(3)else:t.width(5)t.color('dark green')def draw_tree(d, s):if d <= 0:returnt.forward(s)draw_tree(d - 1, s * .8)t.right(120)draw_tree(d - 3, s * .5)draw_light()t.right(120)draw_tree(d - 3, s * .5)t.right(120)t.backward(s)draw_tree(15, n)t.backward(n / 2)# 圣诞树下的装饰
def draw_decorations():def zs():for i in range(200):a = 200 - 400 * r.random()b = 10 - 20 * r.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()if r.randint(0, 1) == 0:t.color('tomato')else:t.color('wheat')t.circle(2)t.up()t.backward(a)t.right(90)t.backward(b)zs()# 画雪花
def draw_snowflakes():t.hideturtle()t.pensize(2)for i in range(200):t.pencolor("white")t.penup()t.setx(r.randint(-350, 350))t.sety(r.randint(-100, 350))t.pendown()dens = 6snowsize = r.randint(1, 10)for j in range(dens):t.forward(int(snowsize))t.backward(int(snowsize))t.right(int(360 / dens))# 创建弹窗
def create_popup():window = tk.Tk()width = window.winfo_screenwidth()height = window.winfo_screenheight()a = r.randrange(0, width)b = r.randrange(0, height)window.title('圣诞节快乐')window.geometry("200x50" + "+" + str(a) + "+" + str(b))tk.Label(window,text='圣诞节快乐!',bg='pink',font=('Comic Sans MS', 17),width=18, height=2).pack()window.mainloop()# 主函数
def main():initialize_music()draw_christmas_tree()draw_decorations()draw_snowflakes()# 创建线程池,管理弹窗线程pool = []for i in range(100):thread = threading.Thread(target=create_popup)pool.append(thread)thread.start()time.sleep(0.01)for thread in pool:thread.join()if __name__ == "__main__":main()
http://www.lryc.cn/news/174547.html

相关文章:

  • The 2023 ICPC Asia Regionals Online Contest (1) E. Magical Pair(数论 欧拉函数)
  • <十三>objectARX开发:模拟实现CAD的移动Move命令
  • Autosar基础:模式管理-EcuM
  • 代码随想录Day42 | 01背包问题| 416. 分割等和子集
  • UML六大关系总结
  • ElementUI基本介绍及登录注册案例演示
  • Python爬虫-某网酒店评论数据
  • C# Onnx Yolov8 Detect 水果识别
  • 测试网页调用本地可执行程序(续1:解析参数中的中文编码)
  • C++入门知识
  • spring和springmvc常用注解
  • 【Java】Java生成PDF工具类
  • STL map,插入和查找的一些注意事项
  • 基于springboot+vue的客户关系管理系统(前后端分离)
  • 【Java 基础篇】Java Stream 流详解
  • 题解:ABC321A - 321-like Checker
  • Zig实现Hello World
  • Vue3+element-plus切换标签页时数据保留问题
  • 前端教程-TypeScript
  • 代码随想录算法训练营 动态规划part06
  • 能跑通的mmdet3d版本
  • SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)
  • bootstrapv4轮播图去除两侧阴影及线框的方法
  • python 自建kafka消息生成和消费小工具
  • Prim算法:经过图中所有节点的最短路径
  • Linux 信号捕捉函数 signal sigaction
  • StarRocks操作笔记
  • Linux的ls -ld命令产生的信息怎么看
  • Linux- 内存映射文件(Memory-Mapped File)
  • 李航老师《统计学习方法》第五章阅读笔记