您现在的位置是:首页 > 技术教程 正文

【python】绘制春节烟花

admin 阅读: 2024-03-20
后台-插件-广告管理-内容页头部广告(手机)

一、Pygame库春节烟花示例

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

  1. import pygame
  2. import random
  3. import math
  4. from pygame.locals import *
  5. # 初始化pygame
  6. pygame.init()
  7. # 设置屏幕大小
  8. screen_width = 800
  9. screen_height = 600
  10. screen = pygame.display.set_mode((screen_width, screen_height))
  11. # 设置标题
  12. pygame.display.set_caption('春节烟花')
  13. # 定义烟花参数
  14. firework_speed = 5
  15. firework_radius = 2
  16. firework_explosion_radius = 60
  17. colors = [
  18. (255, 0, 0), # Red
  19. (0, 255, 0), # Green
  20. (0, 0, 255), # Blue
  21. (255, 255, 0), # Yellow
  22. (255, 165, 0), # Orange
  23. (255, 255, 255) # White
  24. ]
  25. # 定义Firework类
  26. class Firework:
  27. def __init__(self, x, y, color, exploded=False):
  28. self.x = x
  29. self.y = y
  30. self.color = color
  31. self.exploded = exploded
  32. self.particles = []
  33. def move(self):
  34. if not self.exploded:
  35. self.y -= firework_speed
  36. def explode(self):
  37. if not self.exploded:
  38. for angle in range(0, 360, 5):
  39. dir_x = math.cos(math.radians(angle))
  40. dir_y = math.sin(math.radians(angle))
  41. self.particles.append((self.x, self.y, dir_x, dir_y, self.color))
  42. self.exploded = True
  43. def update(self):
  44. if self.exploded:
  45. for particle in self.particles:
  46. index = self.particles.index(particle)
  47. particle_x, particle_y, dir_x, dir_y, color = particle
  48. particle_x += dir_x * 2
  49. particle_y += dir_y * 2
  50. self.particles[index] = (particle_x, particle_y, dir_x, dir_y, color)
  51. if self.distance(particle_x, particle_y) > firework_explosion_radius:
  52. self.particles.pop(index)
  53. def show(self):
  54. if not self.exploded:
  55. pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), firework_radius)
  56. else:
  57. for particle in self.particles:
  58. particle_x, particle_y, dir_x, dir_y, color = particle
  59. pygame.draw.circle(screen, color, (int(particle_x), int(particle_y)), firework_radius)
  60. def distance(self, x, y):
  61. return math.sqrt((self.x - x) ** 2 + (self.y - y) ** 2)
  62. fireworks = [Firework(random.randint(0, screen_width), screen_height - 10, random.choice(colors))]
  63. # 游戏主循环
  64. running = True
  65. while running:
  66. screen.fill((0, 0, 0)) # use a dark sky background
  67. # 执行事件循环
  68. for event in pygame.event.get():
  69. if event.type == QUIT:
  70. running = False
  71. # 更新和显示烟花
  72. for firework in fireworks:
  73. if not firework.exploded and firework.y < screen_height / 2 + random.randint(-100, 100):
  74. firework.explode()
  75. firework.move()
  76. firework.update()
  77. firework.show()
  78. # 随机发射新的烟花
  79. if random.randint(0, 20) == 1:
  80. fireworks.append(Firework(random.randint(0, screen_width), screen_height - 10, random.choice(colors)))
  81. # 删除已完成的烟花
  82. for firework in fireworks:
  83. if firework.exploded and len(firework.particles) == 0:
  84. fireworks.remove(firework)
  85. pygame.display.flip()
  86. pygame.time.Clock().tick(30) # 控制游戏最大帧率为30fps
  87. 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`模块来绘制一个模拟烟花的图形:

  1. import turtle
  2. import random
  3. # 设置屏幕背景
  4. screen = turtle.Screen()
  5. screen.bgcolor("black")
  6. # 创建烟花的绘图对象
  7. firework = turtle.Turtle()
  8. firework.speed(0)
  9. firework.hideturtle()
  10. # 绘制烟花的方法
  11. def draw_firework():
  12. colors = ["red", "yellow", "blue", "green", "orange", "purple", "white"]
  13. # 烟花升空
  14. firework.penup()
  15. firework.goto(random.randint(-200, 200), random.randint(-200, 0))
  16. firework.pendown()
  17. # 烟花爆炸
  18. explode_times = random.randint(5, 15)
  19. for i in range(explode_times):
  20. firework.color(random.choice(colors))
  21. firework.pensize(random.randint(1, 5))
  22. firework.speed(0)
  23. angle = 360 / explode_times
  24. firework.seth(i * angle)
  25. firework.forward(random.randint(20, 150))
  26. firework.backward(random.randint(20, 150))
  27. # 重复绘制烟花
  28. for _ in range(10):
  29. draw_firework()
  30. # 点击屏幕后退出
  31. screen.exitonclick()

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

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

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜