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

这篇具有很好参考价值的文章主要介绍了【python】python新年烟花代码【附源码】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

一、效果图:

【python】python新年烟花代码【附源码】,python,pygame,开发语言,人工智能

        

二、准备工作

 文章来源地址https://www.toymoban.com/news/detail-783415.html

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

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

import requests
from lxml import etree
import csv

        如果出现模块报错

【python】python新年烟花代码【附源码】,python,pygame,开发语言,人工智能

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

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 = True
clock = 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

三、完整代码:

        【python】python新年烟花代码【附源码】,python,pygame,开发语言,人工智能

import pygame
import math
from random import randint, choice

# 初始化 Pygame
pygame.init()

# 设置窗口大小和标题
DISPLAY_WIDTH = 800
DISPLAY_HEIGHT = 600
win = 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 = True
clock = 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今日热榜 一站式资讯平台

【python】python新年烟花代码【附源码】,python,pygame,开发语言,人工智能


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

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

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

 

 

到了这里,关于【python】python新年烟花代码【附源码】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言系列之炫酷新年烟花秀(带新年祝福)

    新年即将到来,由于全国各地的政策不一样,也许有的地方会禁止燃放烟花,那么就来一款别开生面的电子烟花,让大家感受一下过年的氛围吧。 代码呈上: 小伙伴们快去试试吧!!

    2024年02月03日
    浏览(29)
  • python和pygame实现烟花特效

    新年来临之际,来一个欢庆新年烟花祝贺,需要安装使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 效果图及源码 先看效果图: 源码如下: pygame在屏幕上显示字体的方法说明 使用 pygame.font.Font 函数来设置字体和大小,

    2024年02月04日
    浏览(59)
  • 【2022最新Python跨年烟花代码,可自选背景音乐,快收藏起来吧 附完整源码】

    大家好,我是钱der,英文名chandler。 还有两天就到元旦了!!!很多小伙伴已经和朋友约好一起跨年了 但是现在很多地方都禁止烟花燃放,跨年没有烟花总感觉缺少一点味道~为了实现在家和朋友看烟花的愿望~这篇文章给大家带来2022跨年烟花代码,让大家都能在家和朋友一起

    2024年02月11日
    浏览(32)
  • 【附源码】使用python+pygame开发消消乐游戏

    消消乐小游戏相信大家都玩过,大人小孩都喜欢玩的一款小游戏,那么基于程序是如何实现的呢?今天带大家,用python+pygame来实现一下这个花里胡哨的消消乐小游戏功能,感兴趣的朋友一起看看吧 目录 一、环境要求 二、游戏简介 三、完整开发流程 1、项目主结构 2、详细配

    2024年02月04日
    浏览(46)
  • c语言-烟花代码

    这个简单的烟花代码会模拟一个烟花爆炸的效果。它会生成一定数量的粒子,每个粒子具有随机的水平速度和垂直速度。它会在屏幕上打印出每个粒子在不同时间点的位置,并且每隔50毫秒更新一次位置。

    2024年02月02日
    浏览(35)
  • 实战: 跨年烟花代码的实现(附源码)

    目录 前言 一、pandas是什么? 二、代码结构 1.介绍主html代码 2. js文件介绍 GameCanvas.js script.js 运行效果 本文章将介绍跨年烟花代码的实现以及源代码 提示:以下是本篇文章正文内容 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 代码如下:

    2024年01月22日
    浏览(32)
  • 写一个烟花代码C语言

    好的,这是一个简单的烟花效果的 C 语言代码。首先,你需要在代码中包含头文件 graphics.h ,这是一个图形库,提供了在屏幕上绘制图形的函数。 #include stdio.h #include graphics.h #include time.h int main() { // 初始化图形环境 int gd = DETECT, gm; initgraph(gd, gm, \\\"\\\");

    2024年02月08日
    浏览(35)
  • 烟花代码|html(猿如意AI源码-参数微调)

    每到 新年的时候捏,就要放烟花啦!但是放烟花太多会危害环境,所以互联网时代的电子烟花平替就代替实体烟花帮我们除旧迎新啦!今天就po一个找到滴猿如意烟花网页代码,开源滴,然后改了一些背景参数,记录一下,新年时给大家送祝福(●\\\'◡\\\'●) !DOCTYPE html html head m

    2024年02月03日
    浏览(37)
  • python烟花代码简单可复制,python烟花代码怎么运行

    大家好,小编来为大家解答以下问题,Python烟花代码总体功能介绍,python烟花代码简单可复制,今天让我们一起来看看吧! 天是2023 的第9天,到了这个时间点,部分小伙伴已经开始复盘这一年的得与失。比如今年增加了多少技能点,看了多少本书,写了多少篇文章或者年前

    2024年01月22日
    浏览(39)
  • python烟花代码简单可复制,python烟花代码怎么写

    大家好,本文将围绕Python烟花代码总体功能介绍展开说明,python烟花代码简单可复制是一个很多人都想弄明白的事情,想搞清楚python烟花代码怎么写需要先了解以下几个事情。 Source code download: 本文相关源码 疫情太严重了,有很多小伙伴都不能出门玩耍了。给大家看一个特别

    2024年02月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包