用python写一个烟花秀的代码
时间: 2023-09-19 18:05:47 浏览: 51
### 回答1:
非常好,下面是用 Python 写的烟花秀的代码。首先,你需要安装 Pygame 库来绘制图像和动画。你可以在命令行中使用 `pip install pygame` 来安装 Pygame。
```python
import random
import math
import pygame
# 定义窗口的宽度和高度
WIDTH, HEIGHT = 800, 600
# 初始化 Pygame
pygame.init()
# 创建一个窗口,设置窗口的宽度和高度
screen = pygame.display.set_mode((WIDTH, HEIGHT))
# 定义烟花类
class Firework:
def __init__(self, x, y):
self.x = x
self.y = y
self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
self.thickness = random.randint(1, 5)
self.speed = random.uniform(-8, 8)
self.angle = math.radians(random.uniform(0, 360))
self.gravity = 0.1
def update(self):
self.x += math.sin(self.angle) * self.speed
self.y -= math.cos(self.angle) * self.speed
self.speed -= self.gravity
def draw(self):
pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), self.thickness)
# 主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
# 在鼠标点击的位置创建一个烟花
x, y = pygame.mouse.get_pos()
firework = Firework(x, y)
fireworks.append(firework)
# 更新所有烟花的位置
for firework in fireworks:
firework.update()
if firework.y > HEIGHT:
fireworks.remove(firework)
# 绘制烟花
screen.fill((0, 0, 0))
for firework in fireworks:
firework.draw()
pygame.display.flip()
```
这段代码中,我们使用 Py
### 回答2:
可以使用Python编写一个简单的烟花秀代码。下面是一个示例代码:
```python
import turtle
import random
import time
# 创建一个烟花对象
class Firework:
def __init__(self, color):
self.t = turtle.Turtle()
self.t.shape("circle")
self.t.color(color)
self.t.up()
self.t.speed(0)
# 发射烟花
def launch(self):
self.t.goto(random.randint(-200, 200), -300)
self.t.down()
self.t.seth(90)
# 往上运动
while self.t.ycor() < random.randint(100, 300):
self.t.forward(random.randint(10, 20))
self.t.right(random.randint(-90, 90))
# 爆炸
self.explode()
# 爆炸效果
def explode(self):
self.t.shape("triangle")
# 随机绘制爆炸形状
for _ in range(30):
self.t.right(random.randint(0, 360))
self.t.forward(random.randint(10, 30))
# 隐藏烟花
self.t.hideturtle()
# 创建窗口
window = turtle.Screen()
window.bgcolor("black")
# 创建五种不同颜色的烟花
fireworks = [
Firework("red"),
Firework("orange"),
Firework("yellow"),
Firework("green"),
Firework("blue")
]
# 发射烟花
for _ in range(10):
random_firework = random.choice(fireworks)
random_firework.launch()
# 保持窗口打开
time.sleep(5)
window.exitonclick()
```
这段代码使用Turtle模块创建了一个简单的图形窗口,并在窗口中发射了随机颜色的烟花。每个烟花从窗口底部发射,上升到随机高度后爆炸成三角形形状,并在屏幕上绘制出爆炸效果。最后,窗口会保持打开状态5秒后关闭。
请确保已经安装了Turtle模块,并使用Python解释器运行代码。
### 回答3:
下面是一个使用Python编写的简单烟花秀代码的示例:
```python
import turtle
import random
# 设置画布的大小和背景
screen = turtle.Screen()
screen.setup(800, 600)
screen.bgcolor("black")
# 创建一个烟花
def create_firework():
firework = turtle.Turtle()
firework.shape("circle")
firework.color(random.choice(["red", "orange", "yellow", "green", "blue", "purple"]))
firework.shapesize(0.5)
firework.penup()
x = random.randint(-350, 350)
y = random.randint(-250, 250)
firework.goto(x, y)
return firework
# 爆炸烟花
def explode_firework(firework):
for _ in range(20):
x = random.randint(-30, 30)
y = random.randint(-30, 30)
firework.goto(firework.xcor() + x, firework.ycor() + y)
# 创建烟花和爆炸
def firework_show():
for _ in range(10):
firework = create_firework()
firework.pendown()
explode_firework(firework)
firework.hideturtle()
# 执行烟花秀
firework_show()
# 关闭窗口
turtle.done()
```
该代码使用了`turtle`库来绘制烟花和爆炸效果。代码首先设定了画布的大小和背景色。然后定义了创建烟花和爆炸动画的函数。爆炸动画分为两步,首先创建了一个烟花,然后让它爆炸并随机移动一段距离。最后通过循环创建多个烟花,形成一个烟花秀效果。