python实现烟花表演

创建一个简单的烟花表演动画需要用到Python的图形库,比如pygame或者matplotlib的动画功能。这里,我会使用pygame来演示如何创建一个简单的烟花表演。

首先,你需要安装pygame库。你可以使用pip来安装:

复制代码

bash复制代码

|---|----------------------|
| | pip install pygame |

接下来是一个简单的烟花表演示例代码:

复制代码

python复制代码

|---|--------------------------------------------------------------------------------------------------------------------------------------------------|
| | 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("烟花表演") |
| | |
| | # 颜色定义 |
| | BLACK = (0, 0, 0) |
| | WHITE = (255, 255, 255) |
| | |
| | # 烟花类 |
| | class Firework: |
| | def __init__(self): |
| | # 初始化烟花位置 |
| | self.x = random.randint(0, screen_width) |
| | self.y = screen_height |
| | # 初始化烟花速度 |
| | self.vx = random.randint(-5, 5) |
| | self.vy = -10 - random.randint(0, 10) |
| | # 初始化烟花颜色 |
| | self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) |
| | # 初始化烟花粒子 |
| | self.particles = [] |
| | for _ in range(random.randint(50, 100)): |
| | self.particles.append([random.randint(0, 255), random.randint(0, 255), random.randint(0, 255), random.randint(-5, 5), random.randint(5, 15)]) |
| | |
| | def update(self): |
| | # 更新烟花位置 |
| | self.x += self.vx |
| | self.y += self.vy |
| | # 烟花爆炸效果 |
| | if self.y < 0: |
| | for particle in self.particles: |
| | particle[3] += 0.5 |
| | particle[4] += 0.1 |
| | pygame.draw.circle(screen, particle[:3], (int(self.x + particle[3]), int(self.y + particle[4])), 1) |
| | self.particles = [] # 爆炸后清空粒子 |
| | else: |
| | pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), 2) |
| | |
| | def is_done(self): |
| | return self.y < -screen_height |
| | |
| | # 游戏主循环 |
| | running = True |
| | fireworks = [] |
| | clock = pygame.time.Clock() |
| | |
| | while running: |
| | for event in pygame.event.get(): |
| | if event.type == pygame.QUIT: |
| | running = False |
| | elif event.type == pygame.KEYDOWN: |
| | if event.key == pygame.K_SPACE: |
| | fireworks.append(Firework()) |
| | |
| | screen.fill(BLACK) |
| | |
| | for fw in fireworks: |
| | fw.update() |
| | if fw.is_done(): |
| | fireworks.remove(fw) |
| | |
| | pygame.display.flip() |
| | clock.tick(60) |
| | |
| | pygame.quit() |

这个示例代码创建了一个Firework类来表示烟花,每个烟花有自己的位置和速度,当烟花到达屏幕底部时,它会爆炸并生成一些粒子,每个粒子也有自己的颜色和速度。

主循环中,我们监听键盘事件,当按下空格键时,会生成一个新的烟花。我们还限制了帧率为60帧每秒,以确保动画的流畅性。

这只是一个非常基础的示例,你可以根据需要增加更多的功能,比如烟花的不同颜色、形状、爆炸效果,或者添加背景音乐等。

相关推荐
第404号工位几秒前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构
Metaphor69213 分钟前
使用 Python 在 Word 文档中添加、修改和删除变量
python·word
終不似少年遊*26 分钟前
【AI Coding实战方法论】从计划协作到架构护栏,一套能长期复用的工程流程
人工智能·python·团队开发·ai编程·ai coding·skills·上下文管理
lusklusklusk27 分钟前
Python 全局变量与局部变量区别——global 关键字、__main__ 块与作用域示例
开发语言·前端·python
马剑威(威哥爱编程)41 分钟前
Python 智能体开发实战 01:装了三遍环境还在报错?虚拟环境和 DeepSeek 一次配到位
开发语言·人工智能·python·agent
octopus_c1 小时前
C++ 入门
开发语言·c++·算法
卷无止境1 小时前
Skill 的安全边界在哪里:风险来源、验证思路与用户可用的防线
后端·python
TomEval1 小时前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
步行cgn1 小时前
JSON.stringify 详解:把 JavaScript 对象变成 JSON 字符串
开发语言·javascript·json
速易达网络1 小时前
如何“训练”一个 .task 模型
python