Python跨年烟花秀

写在前面

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

环境需求

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

  • python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653
  • pyinstaller使用教程见:https://want595.blog.csdn.net/article/details/134106807

跨年烟花秀 

程序设计

import pygame as pg
import random as ra
import mathpg.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
3hellokittyhttps://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
6Tom&Jerryhttps://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

写在后面

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823594.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

图灵日记之java奇妙历险记--继承和多态

目录 继承概念继承语法父类成员访问子类中访问父类的成员变量子类中访问父类的成员方法 super关键字子类构造方法super和this初始化protected关键字继承方式final 关键字继承与组合 多态条件向上转型重写动态绑定&&静态绑定多态再理解向下转型多态的优缺点好处缺陷 继承…

【Transformer】深入理解Transformer模型2——深入认识理解(下)

前言 Transformer模型出自论文:《Attention is All You Need》 2017年 近年来,在自然语言处理领域和图像处理领域,Transformer模型都受到了极为广泛的关注,很多模型中都用到了Transformer或者是Transformer模型的变体&#xff0…

java springboot宠物医院管理系统

一.项目简介 宠物医院管理系统,java项目,springboot项目。eclipse和idea都能打开运行。 使用技术:springboot,mybatis,jsp,mysql 5.7 共分为三个角色:系统管理员、医生、用户 功能模块&…

9. 进程

9. 进程 1. 进程与程序1.1 main() 函数由谁调用1.2 程序如何结束1.2.1 注册进程终止处理函数 atexit() 1.3 何为进程1.4 进程号 2. 进程的环境变量2.1 应用程序中获取环境变量2.1.1 获取指定环境变量 2.2 添加/删除/修改环境变量2.2.1 putenv()2.2.2 setenv()2.2.3 命令行式添加…

springboot参数校验常用注解及分组校验

一、使用方式添加Validated 二、常见注解 Null 被注解的元素必须为null NotNull 被注解的元素必须不为null NotBlank 只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即&#xff…

在 Linux 中使用 cat 命令

cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。 cat 实际上代表 “连接(concatenate)”,创建它是为了 合并文本文件。但只要有一个参数,它就会打印文件内容。因此,它是用…

【数据结构】双向带头循环链表的实现

前言:在前面我们学习了顺序表、单向链表,今天我们在单链表的基础上进一步来模拟实现一个带头双向链表。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码仓库:卫卫周大胖的…

软件测试/测试开发丨Python 内置库 正则表达式re

什么是正则表达式 正则表达式就是记录文本规则的代码可以查找操作符合某些复杂规则的字符串 使用场景 处理字符串处理日志 在 python 中使用正则表达式 把正则表达式作为模式字符串正则表达式可以使用原生字符串来表示原生字符串需要在字符串前方加上 rstring # 匹配字符…

基于Java学生成绩管理系统设计与实现(源码+部署文档+报告)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

结构体:是第几天

今天是该年的第几天 #include<iostream> using namespace std; struct Date //创建结构体 {int year; //年int month; //月int day; //日 }; void inputDate(Date *p) //输入函数 {cin >> p->year >> p->month >> p->day; //输入年、月、…

C++内联函数与引用(超详细)

文章目录 前言一、内联函数1.为什么会存在内联函数2.什么是内联函数3.内联函数注意事项 二、引用1.什么是引用2.引用的特性3.常引用4.引用使用场景5.引用与指针 总结 前言 一、内联函数 1.为什么会存在内联函数 &#x1f9d0;&#x1f9d0;首先我们介绍内联函数之前&#xf…

记一次JSF异步调用引起的接口可用率降低 | 京东云技术团队

前言 本文记录了由于JSF异步调用超时引起的接口可用率降低问题的排查过程&#xff0c;主要介绍了排查思路和JSF异步调用的流程&#xff0c;希望可以帮助大家了解JSF的异步调用原理以及提供一些问题排查思路。本文分析的JSF源码是基于JSF 1,7.5-HOTFIX-T6版本。 起因 问题背景…

基于 Vue3 和 WebSocket 实现的简单网页聊天应用

首先附上项目介绍,后面详细解释技术细节 1. chat-websocket 一个基于Vue3和WebSocket的简易网络聊天室项目&#xff0c;包括服务端和客户端部分。 项目地址 websocket-chat 下面是项目的主要组成部分和功能&#xff1a; 项目结构 chat-websocket/ |-- server/ # WebSocket 服…

Linux上管理不同版本的 JDK

当在 Linux 上管理不同版本的 JDK 时&#xff0c;使用 yum 和 dnf 可以方便地安装和切换不同的 JDK 版本。本文将介绍如何通过这两个包管理工具安装 JDK 1.8 和 JDK 11&#xff0c;并利用软连接动态关联这些版本。 安装 JDK 1.8 和 JDK 11 使用 yum 安装 JDK 1.8 打开终端并…

【AIGC表情prompt】提示词练习技巧

表情类提示词练习技巧 医疗机器人&#xff0c;男人笑脸景深&#xff0c;数据&#xff0c;座标&#xff0c;12k,c4d渲染&#xff0c;高分辨率&#xff0c;,暖色调&#xff0c;高清对比 医疗机器人&#xff0c;男人微笑&#xff0c;景深&#xff0c;数据&#xff0c;座标&#xf…

线上发布稳定性方案介绍

目录 一、方案说明 二、线上发布问题描述 2.1 无损上下线背景说明 2.1.1 服务⽆法及时下线 2.1.2 初始化慢 2.1.3 注册太早 2.1.4 发布态与运⾏态未对⻬ 三、问题解决方案 3.1 无损下线方案 3.1.1 什么是无损下线 3.1.2 传统解决方式 3.1.3 云原生场景解决方案 3.1…

提升爬虫IP时效:解决被封IP的难题

在进行数据采集时&#xff0c;经常会遇到被目标网站封禁IP的情况&#xff0c;这给爬虫系统带来了困扰。本文将介绍如何提升爬虫IP的时效&#xff0c;解决被封IP的难题&#xff0c;帮助您顺利进行数据采集&#xff0c;不再受限于IP封禁。 第一步&#xff1a;使用爬虫IP 使用爬虫…

使用element中el-cascader级联选择器实现省市区街道筛选(非动态加载)

<template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"地址:" prop"addressList"><el-cascaderv-model"form.addressList":props"props":options&q…

《网络是怎样连接的》2.1节图表(自用)

图3.1&#xff1a;协议栈的组成 图3.2&#xff1a;netstat命令查看套接字 上图中每一行就是一个套接字 图3.3&#xff1a;协议栈在浏览器访问DNS服务器与web服务器时的具体工作流程 套接字由协议栈创建 应用程序通过Socket库中的程序组件与协议栈交互

飞企互联-FE企业运营管理平台 登录绕过漏洞复现

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外&#xff0c;支持企业B2B、C2B与O2O等核心需求&#xff0c;为不同行业客户的互联网转型提供支持。 0x02 漏洞概…