首页 > 编程语言 >python特别艺术篇:pygame带你放烟花!

python特别艺术篇:pygame带你放烟花!

时间:2025-01-21 12:56:32浏览次数:3  
标签:python self random 烟花 pygame screen 255

前言

大家好呀,我是超级BOBO仔
距离过年还有1周时间,想不想在大年三十和你最近心心念念的Python做一个烟花梦?
来吧,这一章我就教大家来做一个


代码

代码。。。不难,而且“一点”“都不长”

import pygame
import random
import math

# 初始化Pygame
pygame.init()

# 设置屏幕尺寸
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("鼠标触发烟花效果")

# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
COLORS = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 165, 0)]

# 烟花粒子类
class Particle:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.angle = random.uniform(0, 2 * math.pi)
        self.speed = random.uniform(2, 5)
        self.radius = random.randint(2, 4)
        self.color = random.choice(COLORS)
        self.life = 100  # 粒子的生命值

    def update(self):
        # 更新粒子的位置
        self.x += self.speed * math.cos(self.angle)
        self.y += self.speed * math.sin(self.angle)
        self.life -= 1  # 减少生命值

    def draw(self, screen):
        # 绘制粒子
        if self.life > 0:
            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), self.radius)

# 主循环
running = True
clock = pygame.time.Clock()
particles = []

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.MOUSEBUTTONDOWN:  # 监听鼠标点击事件
            # 在鼠标点击位置生成烟花粒子
            x, y = pygame.mouse.get_pos()
            for _ in range(100):  # 生成100个粒子
                particles.append(Particle(x, y))

    # 更新屏幕
    screen.fill(BLACK)

    # 更新和绘制粒子
    for particle in particles[:]:  # 使用切片来复制列表,以便在迭代时修改原列表
        particle.update()
        particle.draw(screen)
        if particle.life <= 0:
            particles.remove(particle)  # 移除生命值为0的粒子

    pygame.display.flip()
    clock.tick(60)  # 控制帧率

pygame.quit()

在你安装pygame库之后,你就可以顺带着看看你的烟花楼喽在这里插入图片描述
输出结果应该是这样:

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="HfRLXLVb-1737421167909" src="https://player.bilibili.com/player.html?aid=113863609549769"></iframe>

pygame放烟花

用鼠标点击即可,是不是很nice?

总结

今天我们学习了如何做电子烟花。
开不开心??

ok,最后的最后,让我送上对一圈三连的好基友们最真挚的新年祝福!!!
在这里插入图片描述

标签:python,self,random,烟花,pygame,screen,255
From: https://blog.csdn.net/m0_69481332/article/details/145268326

相关文章

  • 【Python运维】Python与网络监控:如何编写网络探测与流量分析工具
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界随着互联网技术的快速发展,网络性能的监控与分析成为保障信息系统稳定运行的关键环节。本文深入探讨了如何利用Python语言构建高效的网络探测与......
  • 【人工智能】Python实战:构建高效的多任务学习模型
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界多任务学习(Multi-taskLearning,MTL)作为机器学习领域中的一种重要方法,通过在单一模型中同时学习多个相关任务,不仅能够提高模型的泛化能力,还能......
  • python中针对实例对象的方法
    以下是包含hasattr的Python内置函数列表,类似于之前提到的各种方法:1.getattr()功能:获取对象的属性值。如果属性不存在,可以返回默认值。语法:getattr(object,name,default)object:对象name:属性名称(字符串)default:如果属性不存在,则返回的默认值(可选)示例:classM......
  • python中针对类本身的方法
    当你提到__getattribute__时,它是Python中一个特殊的方法,用于访问对象的属性。重载该方法可以控制访问实例属性的行为。在Python中,__getattribute__是所有属性访问的基础方法,每次你访问对象的属性时,都会调用它。除了__class__、__mro__、__dict__等方法之外,__getattribute......
  • Python 常用运维模块之OS模块篇
    Python常用运维模块之OS模块篇OS模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行......
  • Python方法重写与扩展
    Python方法重写与扩展在面向对象编程中,方法重写和方法扩展是两个非常重要的概念,它们使得派生类可以根据需要对基类的方法进行修改或增强。通过方法重写,派生类能够替代基类中已有的方法,而方法扩展则允许派生类在基类方法的基础上,增加新的功能或对方法进行额外的操作。方法......
  • Python MQTT服务器
    pythonmqttserver是一个流行的开源工具,用于在分布式系统中实现消息传递。通过使用Python编写MQTT服务器,用户可以轻松地实现自己的消息传递系统。下面是对PythonMQTT服务器的简要解读和分析。一、PythonMQTT服务器的工作原理PythonMQTT服务器使用Python语言编写的,采用MQTT协......
  • python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
    本文原文链接文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完......
  • python 利用探空数据识别整层云
    选用蔡淼的论文:[1]蔡淼,欧建军,周毓荃,等.L波段探空判别云区方法的研究[J].大气科学,2014,38(02):213-222.里面的阈值法: #!/usr/bin/python3#-*-coding:utf-8-*-"""@Time:2025/1/2023:22@Author:Suyue@Email:1493117872@qq.com@File:cloud_area.py@Proj......
  • python转转商超书籍信息爬虫
    1基本理论1.1概念体系        网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以按照我们设置的规则自动化爬取网络上的信息,这些规则被称为爬虫算法。是一种自动化程序,用于从互联网上抓取数据。爬虫通过模拟浏览器的行为,访问网页并提取信息。这些信息可以是结构化的......