我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【python】python新年烟花代码【附源码】

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【python】python新年烟花代码【附源码】

        欢迎来到英杰社区https://bbs.csdn.net/topics/617804998     

   新年的钟声即将敲响,为了庆祝这个喜庆的时刻,我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。

一、效果图:

4c3f47d613e3474889845c61f20c474c.gif

        

二、准备工作

 

(1)、导入必要的模块:

       代码首先导入了需要使用的模块:requests、lxml和csv。

import requestsfrom lxml import etreeimport csv

        如果出现模块报错

c124a1693bfc457ba1f2909ee9d299fc.png

        进入控制台输入:建议使用国内镜像源

pip install 模块名称 -i https://mirrors.aliyun.com/pypi/simple

         我大致罗列了以下几种国内镜像源:

清华大学https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/豆瓣https://pypi.douban.com/simple/ 百度云https://mirror.baidu.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/华为云https://mirrors.huaweicloud.com/repository/pypi/simple/腾讯云https://mirrors.cloud.tencent.com/pypi/simple/

        (2) 、定义粒子类

        接下来,我们定义一个粒子类,每个粒子具有位置、颜色、半径、角度、速度、重力和生命周期等属性。我们还为粒子类添加更新和绘制方法。

class Particle:    def __init__(self, x, y, color):        self.x = x        self.y = y        self.color = color        self.radius = 3        self.angle = randint(0, 360)        self.speed = randint(1, 5)        self.gravity = 0.1        self.life = randint(20, 25)    def update(self):        if self.life > 0:            radian = math.radians(self.angle)            self.x += self.speed * math.cos(radian)            self.y -= self.speed * math.sin(radian)            self.speed -= self.gravity            self.life -= 1    def draw(self):        pygame.draw.circle(win, self.color, (int(self.x), int(self.y)), self.radius)

        (3)、定义烟花类

         接下来,我们定义一个烟花类,每个烟花具有位置、颜色、粒子列表和是否已经爆炸的属性。我们为烟花类添加爆炸和更新方法,并在绘制方法中绘制烟花本身。

 
class Firework:    def __init__(self):        self.x = randint(100, DISPLAY_WIDTH - 100)        self.y = DISPLAY_HEIGHT        self.color = (randint(0, 255), randint(0, 255), randint(0, 255))        self.particles = []        self.exploded = False    def explode(self):        for _ in range(100):            particle = Particle(self.x, self.y, self.color)            self.particles.append(particle)    def update(self):        if not self.exploded:            self.y -= 3            if self.y <= randint(200, 400):                self.explode()                self.exploded = True        else:            for particle in self.particles:                particle.update()    def draw(self):        pygame.draw.circle(win, self.color, (int(self.x), int(self.y)), 5)

        (4)、游戏主循环

        在主循环中,我们处理退出事件,清空窗口,更新和绘制每个烟花及其粒子,移除完成的烟花和消失的粒子,并更新显示。

# 创建烟花列表fireworks = []# 游戏主循环running = Trueclock = pygame.time.Clock()while running:    clock.tick(60)    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False    win.fill(BLACK)    # 添加新的烟花    if len(fireworks) < 10 and randint(0, 100) < 2:        fireworks.append(Firework())    # 更新和绘制烟花    for firework in fireworks:        firework.update()        firework.draw()        for particle in firework.particles:            particle.draw()    # 移除完成的烟花及消失的粒子    fireworks = [firework for firework in fireworks if not firework.exploded or len(firework.particles) > 0]    for firework in fireworks:        firework.particles = [particle for particle in firework.particles if particle.life > 0]    pygame.display.update()pygame.quit()

 

英杰社区https://bbs.csdn.net/topics/617804998

三、完整代码:

        7c083ffdae014ff392ab4f2fdcfd96b8.png

import pygameimport mathfrom random import randint, choice# 初始化 Pygamepygame.init()# 设置窗口大小和标题DISPLAY_WIDTH = 800DISPLAY_HEIGHT = 600win = pygame.display.set_mode((DISPLAY_WIDTH, DISPLAY_HEIGHT))pygame.display.set_caption("烟花")# 定义颜色WHITE = (255, 255, 255)BLACK = (0, 0, 0)# 定义粒子类class Particle:    def __init__(self, x, y, color):        self.x = x        self.y = y        self.color = color        self.radius = 3        self.angle = randint(0, 360)        self.speed = randint(1, 5)        self.gravity = 0.1        self.life = randint(20, 25)    def update(self):        if self.life > 0:            radian = math.radians(self.angle)            self.x += self.speed * math.cos(radian)            self.y -= self.speed * math.sin(radian)            self.speed -= self.gravity            self.life -= 1    def draw(self):        pygame.draw.circle(win, self.color, (int(self.x), int(self.y)), self.radius)# 定义烟花类class Firework:    def __init__(self):        self.x = randint(100, DISPLAY_WIDTH - 100)        self.y = DISPLAY_HEIGHT        self.color = (randint(0, 255), randint(0, 255), randint(0, 255))        self.particles = []        self.exploded = False    def explode(self):        for _ in range(100):            particle = Particle(self.x, self.y, self.color)            self.particles.append(particle)    def update(self):        if not self.exploded:            self.y -= 3            if self.y <= randint(200, 400):                self.explode()                self.exploded = True        else:            for particle in self.particles:                particle.update()    def draw(self):        pygame.draw.circle(win, self.color, (int(self.x), int(self.y)), 5)# 创建烟花列表fireworks = []# 游戏主循环running = Trueclock = pygame.time.Clock()while running:    clock.tick(60)    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False    win.fill(BLACK)    # 添加新的烟花    if len(fireworks) < 10 and randint(0, 100) < 2:        fireworks.append(Firework())    # 更新和绘制烟花    for firework in fireworks:        firework.update()        firework.draw()        for particle in firework.particles:            particle.draw()    # 移除完成的烟花及消失的粒子    fireworks = [firework for firework in fireworks if not firework.exploded or len(firework.particles) > 0]    for firework in fireworks:        firework.particles = [particle for particle in firework.particles if particle.life > 0]    pygame.display.update()pygame.quit()

        通过上述步骤,我们已经成功创建了一个令人惊叹的烟花盛典。在这个过程中,我们学习了如何使用 Pygame 库和 Python 编程,创建粒子类和烟花类,并在主循环中更新和绘制烟花效果。

    给大家推荐一个网站

    IT今日热榜 一站式资讯平台

5e55aaa0909e411ebb2694c9d3c30361.png


        里面包含了上百个IT网站,欢迎大家访问:IT今日热榜 一站式资讯平台

   iToday,打开信息的新时代。作为一家创新的IT数字媒体平台,iToday致力于为用户提供最新、最全面的IT资讯和内容。里面包含了技术资讯、IT社区、面试求职、前沿科技等诸多内容。我们的团队由一群热爱创作的开发者和分享的专业编程知识爱好者组成,他们精选并整理出真实可信的信息,确保您获得独特、有价值的阅读体验。随时随地,尽在iToday,与世界保持连接,开启您的信息新旅程!

IT今日热榜 一站式资讯平台IT今日热榜汇聚各类IT热榜:虎嗅、知乎、36氪、京东图书销售、晚点、全天候科技、极客公园、GitHub、掘金、CSDN、哔哩哔哩、51CTO、博客园、GitChat、开发者头条、思否、LeetCode、人人都是产品经理、牛客网、看准、拉勾、Boss直聘http://itoday.top/

 

 

来源地址:https://blog.csdn.net/m0_73367097/article/details/135481779

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【python】python新年烟花代码【附源码】

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python实现新年烟花秀的代码怎么写

今天就跟大家聊聊有关Python实现新年烟花秀的代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段
2023-06-22

怎么用Python代码实现最炫的烟花

这篇文章主要介绍“怎么用Python代码实现最炫的烟花”,在日常操作中,相信很多人在怎么用Python代码实现最炫的烟花问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python代码实现最炫的烟花”的疑
2023-06-29

python实现烟花的实例代码怎么编写

本篇文章给大家分享的是有关python实现烟花的实例代码怎么编写,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现代码如下:# -*- coding: utf-8 -*-imp
2023-06-22

利用JavaScript实现绘制2023新年烟花的示例代码

大家过年好!新春佳节,在这个充满喜悦的日子里,愿新年的钟声带给你一份希望和期待。在这喜庆的日子里,小编和大家分享一个烟花代码,希望大家能够喜欢
2023-01-28

Python实现绘制圣诞树和烟花的示例代码

这不是圣诞节快到了,还不用Python绘制个圣诞树和烟花让女朋友开心开心,也算是亲手做的,稍稍花了点心思,学会了赶紧画给你的那个她吧
2022-12-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录