您现在的位置是:首页 >技术交流 >【2025最新】python实现浪漫烟花案例(完整代码)网站首页技术交流

【2025最新】python实现浪漫烟花案例(完整代码)

小北画画 2025-04-11 00:01:02
简介【2025最新】python实现浪漫烟花案例(完整代码)


文未福利

编程资料、学习路线图、源代码、软件安装包等!【点击这里】可无偿分享!!!

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ Python实战秦例,学习不再是只会理论
④ Python漫画教程,手机也能学习


高级烟花案例

要创建一个高级的烟花效果,您可以使用Python的图形库,如Pygame。Pygame是一个流行的用于创建视频游戏的库,但它也可以用于制作各种图形效果,包括烟花。

以下是一个使用Pygame创建高级烟花效果的完整代码示例。请确保您已经安装了Pygame库,可以使用以下命令进行安装:

pip install pygame

然后,您可以使用以下代码创建一个浪漫烟花效果:

代码示例:

import pygame
import random
import math
 
# 初始化Pygame
pygame.init()
 
# 设置屏幕尺寸
screen_width, screen_height = 800, 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Advanced Fireworks")
 
# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0), (138, 43, 226)]
 
# 烟花粒子类
class Particle:
    def __init__(self, x, y, color, angle, speed, gravity, lifespan):
        self.x = x
        self.y = y
        self.color = color
        self.angle = angle
        self.speed = speed
        self.gravity = gravity
        self.lifespan = lifespan
        self.age = 0
 
    def update(self):
        self.age += 1
        self.x += self.speed * math.cos(self.angle)
        self.y += self.speed * math.sin(self.angle) - self.gravity
        self.speed *= 0.98  # 衰减速度
 
    def draw(self, screen):
        if self.age < self.lifespan:
            radius = int((self.lifespan - self.age) / self.lifespan * 5)
            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), radius)
 
    def is_dead(self):
        return self.age >= self.lifespan
 
# 烟花类
class Firework:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.particles = []
        self.create_particles()
 
    def create_particles(self):
        num_particles = random.randint(50, 100)
        for _ in range(num_particles):
            angle = random.uniform(0, 2 * math.pi)
            speed = random.uniform(5, 15)
            color = random.choice(COLORS)
            gravity = 0.5
            lifespan = random.randint(50, 100)
            self.particles.append(Particle(self.x, self.y, color, angle, speed, gravity, lifespan))
 
    def update(self):
        for particle in self.particles:
            particle.update()
            if particle.is_dead():
                self.particles.remove(particle)
 
    def draw(self, screen):
        for particle in self.particles:
            particle.draw(screen)
 
# 主游戏循环
def main():
    clock = pygame.time.Clock()
    fireworks = []
 
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.MOUSEBUTTONDOWN:
                x, y = pygame.mouse.get_pos()
                fireworks.append(Firework(x, y))
 
        # 更新和绘制
        screen.fill(BLACK)
        for firework in fireworks[:]:
            firework.update()
            firework.draw(screen)
            if not firework.particles:
                fireworks.remove(firework)
 
        pygame.display.flip()
        clock.tick(60)
 
    pygame.quit()
 
if __name__ == "__main__":
    main()

代码解释

初始化Pygame:
调用pygame.init()初始化Pygame。
设置屏幕尺寸并创建显示窗口。
颜色定义:
定义一些常用的颜色。
粒子类(Particle):
每个粒子表示烟花爆炸后的一个火花。
粒子具有位置、颜色、角度、速度、重力和寿命等属性。
update方法用于更新粒子的位置和其他属性。
draw方法用于在屏幕上绘制粒子。
is_dead方法用于检查粒子是否已经超过其寿命。
烟花类(Firework):
烟花对象负责创建和管理一组粒子。
create_particles方法用于生成一组随机粒子。
update方法用于更新所有粒子的状态并移除已经死亡的粒子。
draw方法用于绘制所有粒子。
主游戏循环:
处理事件,包括关闭窗口和鼠标点击事件。
在鼠标点击位置创建新的烟花。
更新和绘制所有烟花。
使用pygame.display.flip()更新屏幕。
控制帧率(每秒60帧)。
退出Pygame:
在退出程序时调用pygame.quit()清理资源。
这个代码提供了一个基础的烟花效果,您可以根据需要进一步调整参数或添加更多功能来增强效果。


风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。