Python烟花秀

Python烟花秀

系列文章

序号 文章目录 直达链接

1浪漫520表白代码
https://want595.blog.csdn.net/article/details/130666881

2满屏表白代码
https://want595.blog.csdn.net/article/details/129794518

3跳动的爱心
https://want595.blog.csdn.net/article/details/129503123

4漂浮爱心
https://want595.blog.csdn.net/article/details/128808630

5爱心光波
https://want595.blog.csdn.net/article/details/132311588

6流星雨
https://want595.blog.csdn.net/article/details/129395465

7满天星
https://want595.blog.csdn.net/article/details/129572082

8烟花秀
https://want595.blog.csdn.net/article/details/128746664

9圣诞树
https://want595.blog.csdn.net/article/details/128213770

10雪花代码
https://want595.blog.csdn.net/article/details/129038108

11模拟星空
https://want595.blog.csdn.net/article/details/129948882

12生日蛋糕
https://want595.blog.csdn.net/article/details/129694998

13樱花树
https://want595.blog.csdn.net/article/details/130350743

14五彩气球
https://want595.blog.csdn.net/article/details/130950744

15七彩花朵
https://want595.blog.csdn.net/article/details/130897838

16恶搞代码
https://want595.blog.csdn.net/article/details/131274862

17代码雨
https://want595.blog.csdn.net/article/details/132574687

18中秋星空
https://want595.blog.csdn.net/article/details/132910075

19国庆祝福
https://want595.blog.csdn.net/article/details/133427031

20皮卡丘
https://want595.blog.csdn.net/article/details/133783136

21玫瑰花
https://want595.blog.csdn.net/article/details/133851128

22名侦探柯南
https://want595.blog.csdn.net/article/details/133903847

23蝙蝠
https://want595.blog.csdn.net/article/details/133935474

24南瓜头
https://want595.blog.csdn.net/article/details/133973340

25万圣节礼物
https://want595.blog.csdn.net/article/details/134011397

目录

系列文章

前言

烟花的粒子类

烟花秀的实现

尾声

前言

Python跨年烟花表演,完整代码文末公众号免费获取哦

烟花的粒子类

程序设计

class particle:     #烟花的粒子类
    def __init__(self,canvas,num,sums,x,y,x_speed,y_speed,explosion_speed,color,size,max_life):
        self.canvas=canvas    #画布
        self.num=num          #粒子的序号
        self.sums=sums        #粒子的个数
        self.x=x              #粒子的横向坐标
        self.y=y              #粒子的纵向坐标
        self.x_speed=x_speed    #粒子在横向的移动速度
        self.y_speed=y_speed    #粒子在纵向的移动速度
        self.initial_speed=explosion_speed    #粒子的初始速度
        self.color=color       #粒子的颜色
        self.life=0            #粒子当前存活的时间
        self.max_life=max_life   #粒子最大的存活时间
        self.oval=self.canvas.create_oval(x-size,y-size,x+size,y+size,fill=self.color)   #粒子的范围(烟花的大小)
    def expand(self):    #判断粒子是否还在爆炸
        if self.life

程序分析

这段代码是一个烟花粒子类,它描述了烟花粒子的属性和行为。烟花是一种美丽的火花表演,它的每一个火花都是由许多小的烟花粒子组成的。这段代码描述了这些烟花粒子的行为。
该类的构造方法接收了许多参数,包括画布(canvas)、粒子的数量(num)、总数量(sums)、位置(x, y)、移动速度(x_speed, y_speed)、爆炸速度(explosion_speed)、颜色(color)、粒子的大小(size)和最大生命期(max_life)等。在初始化方法中,它创建了一个画布上的椭圆(或者说是烟花),并将其指定为烟花粒子的范围。
在该类中,有三个方法是用于控制烟花粒子的行为。第一个是expand(),用于判断当前粒子是否还在爆炸状态,如果是,则返回1,否则返回0。第二个是alive(),用于判断当前粒子是否还存活,如果是,则返回1,否则返回0。第三个是new(),用于更新当前烟花的粒子位置、速度等信息。
在new()方法中,会根据当前时间(dt)来更新粒子的位置。如果烟花还在爆炸时间内,会执行爆炸,更新横向和纵向坐标,并在画布上绘制烟花。如果爆炸时间结束了,但粒子还存在,则开始坠落,根据横向和纵向速度更新坐标,并在画布上绘制烟花。如果在坠落时间外了,就将烟花从画布上擦除。
总的来说,该类描述了烟花粒子的行为,包括爆炸、坠落和消失等。通过使用该类,我们可以模拟出烟花的美丽表演,再加上一些音乐和灯光效果,一定会很有趣。

烟花秀的实现

程序设计

def fireworks(canvas):#烟花函数(循环更新当前界面)
    times=ti.time()       #获取当前时间戳
    explode_points=[]     #烟花列表
    wait_time=r.randint(1,10)      #等待时间
    num_explode=r.randint(20,30)     #烟花的个数
    for point in range(num_explode):     #依次更新各个烟花
        firework=[]      #当前烟花的粒子列表
        x=r.randint(50,550)   #当前烟花的粒子在横向的活动范围
        y=r.randint(50,150)   #当前烟花的粒子在纵向的活动范围
        speed=r.uniform(0.5,2)   #粒子的绽放速度
        size=r.uniform(0.5,1.5)    #粒子的大小
        color=r.choice(colors)     #粒子的颜色
        explosion_speed=r.uniform(0.2,5)    #粒子爆炸的速度
        sum_particles=r.randint(30,50)      #粒子的总数
        max_life=r.uniform(0.6,1.75)        #粒子的最大存活时间
        for i in range(1,sum_particles):   #当前烟花的每个粒子的参数
            fire=particle(canvas,num=i,sums=sum_particles,explosion_speed=explosion_speed,x=x,y=y,x_speed=speed,y_speed=speed,color=color,size=size,max_life=max_life)
            firework.append(fire)    #将当前粒子加入到当前的烟花粒子列表中
        explode_points.append(firework)   #将当前烟花加入到烟花列表中
    expand_time=0     #初始爆炸的时间
    while expand_time

程序分析

这段代码是一个烟花函数,用于控制烟花粒子的绘制和更新。在函数中,首先获取当前时间戳,然后生成一个随机的等待时间和烟花的数量。接着,循环更新每个烟花的粒子位置,同时将每个烟花的粒子加入到烟花列表中。然后,循环更新所有粒子的位置,直到爆炸的时间达到2秒为止。
在更新粒子位置的过程中,会根据粒子的参数来更新粒子的位置、速度等信息。其中,使用了particle类来实现对粒子的描述和控制。每个粒子都有自己的大小、颜色、速度等属性。粒子在爆炸时会按照参数来进行偏移,并且在爆炸结束后开始下落。
在函数中,使用了sleep()方法来控制每一帧的等待时间,以达到动态更新的效果。同时,使用了canvas.update()方法来更新画布上的元素,并允许用户交互。
最后,使用after()方法来设置定时器,以便定期调用烟花函数。这样就可以持续不断地播放烟花表演了。
总之,该函数通过调用particle类来实现烟花粒子的控制,并且使用sleep()方法和canvas.update()方法来实现动态更新的效果。对于喜欢烟花表演的人来说,该函数可以提供一个非常有趣的视觉和听觉体验。

尾声

家人们新年快乐!

Original: https://blog.csdn.net/m0_68111267/article/details/128746664
Author: Want595
Title: Python烟花秀

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/811737/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球