import tkinter as tk
from PIL import Image, ImageTk
from time import time, sleep
from random import choice, uniform, randint
from particle import Particle
# 颜色选项
colors = ['red', 'blue', 'yellow', 'white', 'green', 'orange', 'purple', 'seagreen', 'indigo', 'cornflowerblue']
HEIGHT = 800
WIDTH = 1200
def simulate(cv):
"""
循环调用保持不停
"""
t = time()
explode_points = []
wait_time = randint(10, 100)
numb_explode = randint(5, 50)
# 创建一个所有粒子同时扩大的二维列表
for point in range(numb_explode):
objects = []
x_cordi = randint(0.05 * WIDTH, 0.95 * WIDTH)
y_cordi = randint(0.05 * HEIGHT, 0.95 * HEIGHT)
speed = uniform(0.2, 2.)
size = uniform(0.2, 3)
color = choice(colors)
explosion_speed = uniform(0.1, 0.5)
explosion_radius = randint(5, 15)
total_particles = randint(20, 50)
for i in range(1, total_particles):
r = Particle(cv, idx=i, total=total_particles, explosion_speed=explosion_speed, explosion_radius=explosion_radius,
x=x_cordi, y=y_cordi, vx=speed, vy=speed, color=color, size=size, lifespan=abs(uniform(0.2, 1.75)))
objects.append(r)
explode_points.append(objects)
total_time = .0
# 1.8s内一直扩大
while total_time < 1.8:
sleep(0.01)
tnew = time()
t, dt = tnew, tnew - t
for point in explode_points:
for item in point:
item.update(dt)
cv.update()
total_time += dt
# 循环调用
root.after(wait_time, simulate, cv)
def close(*ignore):
"""退出程序、关闭窗口"""
global root
root.quit()
if __name__ == '__main__':
root = tk.Tk()
cv = tk.Canvas(root, height=HEIGHT, width=WIDTH)
# 选一个好看的背景会让效果更惊艳!
image = Image.open("./background.jpg")
photo = ImageTk.PhotoImage(image)
cv.create_image(0, 0, image=photo, anchor='nw')
cv.pack()
root.protocol("WM_DELETE_WINDOW", close)
root.after(100, simulate, cv)
root.mainloop()
没有合适的资源?快使用搜索试试~ 我知道了~
基于python代码春节烟花源码(2025).rar
共4个文件
py:2个
pyc:1个
jpg:1个
需积分: 5 0 下载量 153 浏览量
2024-09-23
10:13:28
上传
评论
收藏 15.49MB RAR 举报
温馨提示
基于python代码春节烟花源码(2025).rar
资源推荐
资源详情
资源评论
收起资源包目录
基于python代码春节烟花源码(2025).rar (4个子文件)
基于python代码春节烟花源码(2025)
background.jpg 15.5MB
main.py 2KB
particle.py 2KB
__pycache__
particle.cpython-36.pyc 2KB
共 4 条
- 1
资源评论
程序员佳倩
- 粉丝: 756
- 资源: 2938
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功