Python跨年烟花秀

写在前面

今年跨年怎么过呢~博主用python的pygame实现了一场炫酷的烟花秀,一起来看看吧!

环境需求

  • python3.11.4及以上
  • PyCharm Community Edition 2023.2.5
  • pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)

跨年烟花秀

程序设计

python 复制代码
import pygame as pg
import random as ra
import math

pg.init()
pg.display.set_caption("🎇")

winScreen = pg.display.Info()
screenWidth = winScreen.current_w
screenHeight = winScreen.current_h

......完整代码见文末公众号喔

程序分析

这段代码使用Pygame库实现了一个烟花效果。代码通过不断更新和绘制Firework对象和Particle对象来实现烟花的发射和爆炸效果。

Firework类表示一颗烟花,包括一个发射出的火花对象和多个爆炸产生的粒子对象。在update方法中,通过给火花施加重力使其向下移动,并绘制火花和火花的尾迹。当火花的y方向速度变为非负数时,表示火花已经发射完毕,此时设置爆炸状态为True,并调用explode方法生成爆炸的粒子对象。在explode方法中,根据设定的粒子数量范围,生成指定数量的粒子对象,并添加到粒子列表中。show方法用于绘制发射出的火花。

Particle类表示一个粒子,包括位置、速度、加速度等属性。在move方法中根据是否是火花来更新粒子的运动状态,火花会向上运动,而爆炸产生的粒子会减速。在绘制粒子时,使用圆形来表示粒子,根据粒子的属性绘制不同颜色和大小的圆。

Trail类表示烟花的尾迹,包括位置和大小等属性。在show方法中,使用圆形来绘制尾迹。

update函数用于更新和绘制所有的烟花对象,并根据烟花是否需要移除来删除已经爆炸的烟花。

fire函数是主函数,初始化Pygame窗口和其他参数,然后进入游戏循环。在循环中,绘制背景和显示文本,通过调用update函数更新烟花的状态和绘制。当点击关闭按钮时退出循环,结束游戏。

在if name == "main"部分,调用fire函数开始运行烟花效果。

注意事项

如遇到问题"no module named pygame ",请在终端输入"pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame",等待pygame库安装完成后再运行程序

系列文章

|--------|------------|---|---|
| 序号 | 文章目录 | 直达链接 ||
| 表白系列 ||||
| 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/133851128 ||
| 节日系列 ||||
| 1 | 生日快乐 | https://want595.blog.csdn.net/article/details/129694998 ||
| 2 | 圣诞节 | https://want595.blog.csdn.net/article/details/128213770 ||
| 3 | 中秋节 | https://want595.blog.csdn.net/article/details/132910075 ||
| 4 | 国庆节 | https://want595.blog.csdn.net/article/details/133427031 ||
| 5 | 儿童节 | https://want595.blog.csdn.net/article/details/130950744 ||
| 6 | 万圣节 | https://want595.blog.csdn.net/article/details/134011397 ||
| 7 | 新年快乐 | https://want595.blog.csdn.net/article/details/128746664 ||
| 动漫系列 ||||
| 1 | 柯南 | https://want595.blog.csdn.net/article/details/133903847 ||
| 2 | 皮卡丘 | https://want595.blog.csdn.net/article/details/133783136 ||
| 3 | hellokitty | https://want595.blog.csdn.net/article/details/134145048 ||
| 4 | 小灰灰 | https://want595.blog.csdn.net/article/details/134282615 ||
| 5 | 喜羊羊 | https://want595.blog.csdn.net/article/details/134338743 ||
| 6 | Tom&Jerry | https://want595.blog.csdn.net/article/details/134382545 ||
| 炫酷系列 ||||
| 1 | 满天星 | https://want595.blog.csdn.net/article/details/129572082 ||
| 2 | 雪花代码 | https://want595.blog.csdn.net/article/details/129038108 ||
| 3 | 模拟星空 | https://want595.blog.csdn.net/article/details/129948882 ||
| 4 | 樱花树 | https://want595.blog.csdn.net/article/details/130350743 ||
| 5 | 七彩花朵 | https://want595.blog.csdn.net/article/details/130897838 ||
| 6 | 恶搞代码 | https://want595.blog.csdn.net/article/details/131274862 ||
| 7 | 代码雨 | https://want595.blog.csdn.net/article/details/132574687 ||
| 8 | 蝙蝠 | https://want595.blog.csdn.net/article/details/133935474 ||
| 9 | 南瓜头 | https://want595.blog.csdn.net/article/details/133973340 ||

写在后面

我是一只有趣的兔子,感谢你的喜欢!

相关推荐
飞剑神4 分钟前
qt svg缺失元素, 原因是不支持 rgba
开发语言·qt
哈里谢顿6 分钟前
Python 依赖注入详解
python
诗书画唱33 分钟前
【前端面试题】JavaScript 核心知识点解析(第二十二题到第六十一题)
开发语言·前端·javascript
冬天vs不冷34 分钟前
Java基础(九):Object核心类深度剖析
java·开发语言·python
TS的美梦35 分钟前
【1:1复刻R版】python版火山图函数一键出图
开发语言·python·r语言·scanpy·火山图
CF14年老兵1 小时前
Python万物皆对象:从懵懂到顿悟的奇妙之旅
后端·python·trae
这里有鱼汤1 小时前
发现个用《道德经》+价值投资大咖的智慧,做A股的AI诊股神器,居然还开源了
python
陈天伟教授1 小时前
(二)Python + 地球信息科学与技术 (GeoICT)=?
开发语言·python
之歆2 小时前
大模型微调分布式训练-大模型压缩训练(知识蒸馏)-大模型推理部署(分布式推理与量化部署)-大模型评估测试(OpenCompass)
人工智能·笔记·python
人工干智能2 小时前
pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?
python·游戏·计算机外设·pygame