python绘制春节烟花的示例代码

 更新时间:2024年02月11日 11:18:26   作者:尘中928  
这篇文章主要介绍了使用python 实现的简单春节烟花效果的示例代码,请注意,运行本文的代码之前,请确保计算机上已经安装了Pygame库,需要的朋友可以参考下

一、Pygame库春节烟花示例

下面是一个使用Pygame实现的简单春节烟花效果的示例代码。请注意,运行下面的代码之前,请确保计算机上已经安装了Pygame库。

import pygame
import random
import math
from pygame.locals import *
 
# 初始化pygame
pygame.init()
 
# 设置屏幕大小
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
 
# 设置标题
pygame.display.set_caption('春节烟花')
 
# 定义烟花参数
firework_speed = 5
firework_radius = 2
firework_explosion_radius = 60
colors = [
    (255, 0, 0),  # Red
    (0, 255, 0),  # Green
    (0, 0, 255),  # Blue
    (255, 255, 0),  # Yellow
    (255, 165, 0),  # Orange
    (255, 255, 255)  # White
]
 
# 定义Firework类
class Firework:
    def __init__(self, x, y, color, exploded=False):
        self.x = x
        self.y = y
        self.color = color
        self.exploded = exploded
        self.particles = []
 
    def move(self):
        if not self.exploded:
            self.y -= firework_speed
 
    def explode(self):
        if not self.exploded:
            for angle in range(0, 360, 5):
                dir_x = math.cos(math.radians(angle))
                dir_y = math.sin(math.radians(angle))
                self.particles.append((self.x, self.y, dir_x, dir_y, self.color))
            self.exploded = True
 
    def update(self):
        if self.exploded:
            for particle in self.particles:
                index = self.particles.index(particle)
                particle_x, particle_y, dir_x, dir_y, color = particle
                particle_x += dir_x * 2
                particle_y += dir_y * 2
                self.particles[index] = (particle_x, particle_y, dir_x, dir_y, color)
                if self.distance(particle_x, particle_y) > firework_explosion_radius:
                    self.particles.pop(index)
 
    def show(self):
        if not self.exploded:
            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), firework_radius)
        else:
            for particle in self.particles:
                particle_x, particle_y, dir_x, dir_y, color = particle
                pygame.draw.circle(screen, color, (int(particle_x), int(particle_y)), firework_radius)
    
    def distance(self, x, y):
        return math.sqrt((self.x - x) ** 2 + (self.y - y) ** 2)
 
fireworks = [Firework(random.randint(0, screen_width), screen_height - 10, random.choice(colors))]
 
# 游戏主循环
running = True
while running:
    screen.fill((0, 0, 0))  # use a dark sky background
 
    # 执行事件循环
    for event in pygame.event.get():
        if event.type == QUIT:
            running = False
 
    # 更新和显示烟花
    for firework in fireworks:
        if not firework.exploded and firework.y < screen_height / 2 + random.randint(-100, 100):
            firework.explode()
        firework.move()
        firework.update()
        firework.show()
 
    # 随机发射新的烟花
    if random.randint(0, 20) == 1:
        fireworks.append(Firework(random.randint(0, screen_width), screen_height - 10, random.choice(colors)))
 
    # 删除已完成的烟花
    for firework in fireworks:
        if firework.exploded and len(firework.particles) == 0:
            fireworks.remove(firework)
 
    pygame.display.flip()
    pygame.time.Clock().tick(30)  # 控制游戏最大帧率为30fps
 
pygame.quit()

这个脚本创建了一些简单的烟花效果,它们会随机地在底部生成,并上升到屏幕的一半高度左右时爆炸。

二、在Windows 11上安装Pygame库

在Windows 11上安装Pygame库需要先确保电脑上有Python环境。Pygame是一个用Python语言编写的跨平台的游戏开发库。以下是在Windows 11上安装Pygame的一般步骤:

1. 安装Python:

如果电脑还没有安装Python,可以从Python官网下载安装包安装。地址是:https://www.python.org/downloads/。下载适合Windows的版本,运行安装程序,并确保在安装过程中选中了“Add Python to PATH”这个选项,以便在命令行中使用`python`命令。

2. 打开命令提示符(CMD)或 PowerShell:

安装了Python之后,按下Windows键,输入`cmd`或`PowerShell`,然后选择“命令提示符”或“Windows PowerShell”。确保以管理员身份运行它。

3. 更新pip(可选,但推荐):

虽然这一步不是必需的,但建议将pip更新到最新版本,以确保无缝安装库。在命令提示符或PowerShell中输入以下命令:

python -m pip install --upgrade pip

4. 安装Pygame:

现在,可以通过pip安装Pygame。在命令提示符或PowerShell中输入以下命令:

python -m pip install pygame

注意:如果电脑安装了多个Python版本,使用`python3`或者`py`命令替换`python`。

5. 验证安装:

为了验证Pygame是否成功安装,可以输入以下命令来导入Pygame,并查看其版本号:

python -c "import pygame; print(pygame.ver)"

这样Pygame应该就成功安装在indows 11系统上了。如果在安装过程中遇到问题,可能需要检查一下Python和pip是否正确安装以及是否已添加到系统的环境变量中。

三、turtle模块烟花示例

春节烟花通常是通过图形界面来实现的,下面用Python编写一个简单的烟花效果。我们将使用Python中的`turtle`模块来生成烟花效果。`turtle`是一个简单的图形绘制库,可以很容易地用来制作烟花动画。下面的Python代码演示了如何用`turtle`模块来绘制一个模拟烟花的图形:

import turtle
import random
 
# 设置屏幕背景
screen = turtle.Screen()
screen.bgcolor("black")
 
# 创建烟花的绘图对象
firework = turtle.Turtle()
firework.speed(0)
firework.hideturtle()
 
# 绘制烟花的方法
def draw_firework():
    colors = ["red", "yellow", "blue", "green", "orange", "purple", "white"]
    # 烟花升空
    firework.penup()
    firework.goto(random.randint(-200, 200), random.randint(-200, 0))
    firework.pendown()
    
    # 烟花爆炸
    explode_times = random.randint(5, 15)
    for i in range(explode_times):
        firework.color(random.choice(colors))
        firework.pensize(random.randint(1, 5))
        firework.speed(0)
        angle = 360 / explode_times
        firework.seth(i * angle)
        firework.forward(random.randint(20, 150))
        firework.backward(random.randint(20, 150))
 
# 重复绘制烟花
for _ in range(10):
    draw_firework()
 
# 点击屏幕后退出
screen.exitonclick()

确保有Python环境,然后运行这段代码。它将随机地在屏幕上绘制10个不同颜色和大小的烟花效果。可以通过增加循环次数或修改代码来创建更多不同的效果。

由于`turtle`库的性能限制,这个烟花动画的展示效果比较基础和有限。对于更加复杂的烟花动画,通常需要使用其他图形库,比如Pygame,或者在Web上使用JavaScript结合HTML5的Canvas。

以上就是python绘制春节烟花的示例代码的详细内容,更多关于python绘制春节烟花的资料请关注脚本之家其它相关文章!

相关文章

  • 爬虫代理的cookie如何生成运行

    爬虫代理的cookie如何生成运行

    这篇文章主要介绍了爬虫代理的cookie如何生成运行,帮助大家更好的理解和使用爬虫,感兴趣的朋友可以了解下
    2020-09-09
  • matplotlib阶梯图的实现(step())

    matplotlib阶梯图的实现(step())

    这篇文章主要介绍了matplotlib阶梯图的实现(step()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python 解析XML python模块xml.dom解析xml实例代码

    python 解析XML python模块xml.dom解析xml实例代码

    这篇文章主要介绍了分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法,有需要的朋友参考下
    2014-02-02
  • python 对多个csv文件分别进行处理的方法

    python 对多个csv文件分别进行处理的方法

    今天小编就为大家分享一篇python 对多个csv文件分别进行处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python 多线程中子线程和主线程相互通信方法

    python 多线程中子线程和主线程相互通信方法

    今天小编就为大家分享一篇python 多线程中子线程和主线程相互通信方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • PyQt5+QtChart实现绘制极坐标图

    PyQt5+QtChart实现绘制极坐标图

    QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现极坐标图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • Python全景系列之模块与包全面解读

    Python全景系列之模块与包全面解读

    这篇文章将带大家深入探讨Python模块与包的基本概念,使用方法以及其在实际项目中的应用,同时也会揭示一些鲜为人知,却又实用的技术细节
    2023-05-05
  • 使用Python脚本实现批量网站存活检测遇到问题及解决方法

    使用Python脚本实现批量网站存活检测遇到问题及解决方法

    本文是小编自己编写的一个使用python实现批量网站存活检测。在项目测试中非常有用。本文给大家分享了遇到的问题及解决方案,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • TensorFlow实现简单的CNN的方法

    TensorFlow实现简单的CNN的方法

    这篇文章主要介绍了TensorFlow实现简单的CNN的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python函数嵌套实例

    Python函数嵌套实例

    这篇文章主要介绍了Python函数嵌套实例,本文用实例讲解了Python中的函数嵌套特性,需要的朋友可以参考下
    2014-09-09

最新评论