元旦示爱代码加烟花python
时间: 2025-01-02 13:24:03 浏览: 5
### Python 元旦爱情表白程序带烟花特效
为了创建一个带有烟花效果的爱情表白程序,可以利用 `tkinter` 和一些自定义的图形处理来实现。下面是一个完整的例子,该例子不仅展示了如何制作烟花动画,还包含了简单的文字表白部分。
#### 导入必要的库
首先导入所需的模块:
```python
import tkinter as tk
from random import randint, choice
import time
```
#### 定义全局变量
设置画布大小和其他参数:
```python
WIDTH = 800
HEIGHT = 600
PARTICLE_COUNT = 150
COLORS = ['red', 'blue', 'yellow', 'white']
```
#### 创建粒子类
用于表示单个火花的行为模式:
```python
class Particle:
def __init__(self, canvas):
self.canvas = canvas
self.x = WIDTH / 2
self.y = HEIGHT + randint(50, 100)
self.color = choice(COLORS)
angle = (randint(80, 100) * 3.14159265358979323 / 180)
speed = randint(5, 10)
self.vx = speed * cos(angle)
self.vy = -speed * sin(angle)
def update(self):
self.x += self.vx
self.y += self.vy
self.vy += 0.1 # 加速度模仿重力作用
if not 0 < self.x < WIDTH or not 0 < self.y < HEIGHT:
particles.remove(self)
self.draw()
def draw(self):
r = randint(1, 4)
id = self.canvas.create_oval(
self.x-r,
self.y-r,
self.x+r,
self.y+r,
fill=self.color,
outline=''
)
self.id = id
```
#### 初始化窗口和画布
建立主界面以及启动函数:
```python
root = tk.Tk()
canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT, bg='black')
canvas.pack()
particles = []
def create_firework():
global particles
for _ in range(PARTICLE_COUNT):
particle = Particle(canvas)
particles.append(particle)
def animate():
if len(particles) > 0:
for p in list(particles):
try:
canvas.delete(p.id)
p.update()
except ValueError:
pass
root.after(30, animate)
create_firework() # 初始创建一次烟花爆炸
animate() # 开始循环更新画面
```
#### 添加表白语句
最后,在适当的位置显示一段温馨的文字信息:
```python
message_label = tk.Label(
text="Happy New Year!\nI love you!",
font=("Arial", 36),
fg="pink",
bg="black"
)
message_label.place(relx=.5, rely=.5, anchor="center") # 居中放置标签
```
#### 启动应用程序
确保所有的组件都准备好之后运行应用:
```python
if __name__ == '__main__':
root.mainloop()
```
这段代码实现了基本的功能需求——通过不断生成新的粒子群模拟烟花升空爆裂的效果,并在屏幕中央展示了一条新年祝福与爱意表达的信息[^1]。
阅读全文