品牌网站是什么,怎么在工商局网站做股东变更,水墨网站模板,js 捕获网站异常插件欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 新年的钟声即将敲响#xff0c;为了庆祝这个喜庆的时刻#xff0c;我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。
一、效果图#xff1a; 二… 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 新年的钟声即将敲响为了庆祝这个喜庆的时刻我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。
一、效果图 二、准备工作 1)、导入必要的模块 代码首先导入了需要使用的模块requests、lxml和csv。
import requests
from lxml import etree
import csv 如果出现模块报错 进入控制台输入建议使用国内镜像源
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 xself.y yself.color colorself.radius 3self.angle randint(0, 360)self.speed randint(1, 5)self.gravity 0.1self.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.gravityself.life - 1def 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_HEIGHTself.color (randint(0, 255), randint(0, 255), randint(0, 255))self.particles []self.exploded Falsedef 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 - 3if self.y randint(200, 400):self.explode()self.exploded Trueelse: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 Falsewin.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
三、完整代码 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 xself.y yself.color colorself.radius 3self.angle randint(0, 360)self.speed randint(1, 5)self.gravity 0.1self.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.gravityself.life - 1def 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_HEIGHTself.color (randint(0, 255), randint(0, 255), randint(0, 255))self.particles []self.exploded Falsedef 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 - 3if self.y randint(200, 400):self.explode()self.exploded Trueelse: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 Falsewin.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今日热榜 一站式资讯平台 里面包含了上百个IT网站欢迎大家访问IT今日热榜 一站式资讯平台 iToday打开信息的新时代。作为一家创新的IT数字媒体平台iToday致力于为用户提供最新、最全面的IT资讯和内容。里面包含了技术资讯、IT社区、面试求职、前沿科技等诸多内容。我们的团队由一群热爱创作的开发者和分享的专业编程知识爱好者组成他们精选并整理出真实可信的信息确保您获得独特、有价值的阅读体验。随时随地尽在iToday与世界保持连接开启您的信息新旅程
IT今日热榜 一站式资讯平台IT今日热榜汇聚各类IT热榜虎嗅、知乎、36氪、京东图书销售、晚点、全天候科技、极客公园、GitHub、掘金、CSDN、哔哩哔哩、51CTO、博客园、GitChat、开发者头条、思否、LeetCode、人人都是产品经理、牛客网、看准、拉勾、Boss直聘http://itoday.top/#/