这是一个简单的烟花动画的Python代码,使用了pygame库。注意这只是一个基础版本,可能还需要进一步的优化和改进以满足更复杂的需求。
import pygame
import random
# 1. 导入必要的库
pygame.init()
# 设置初始参数
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("简单烟花动画")
# 烟花的移动逻辑
def move_firework(firework):
firework['y'] += firework['speed']
if firework['y'] > HEIGHT:
firework['y'] = 0
firework['x'] = random.randint(0, WIDTH)
# 绘制烟花
def draw_firework(firework):
pygame.draw.circle(screen, (firework['color']), (int(firework['x']), int(firework['y'])), firework['size'])
# 更新屏幕
def update_screen():
pygame.display.flip()
# 控制烟花的数量和速度
def control_fireworks(fireworks):
for firework in fireworks:
move_firework(firework)
draw_firework(firework)
update_screen()
# 退出条件
def check_quit():
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# 测试代码
def main():
fireworks = []
num_fireworks = 100 # 控制烟花的数量
speed = 1 # 控制烟花的速度,单位是像素/帧
size = 5 # 控制烟花的大小,单位是像素
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)] # 控制烟花的颜色,这里使用了红色、绿色和蓝色三种颜色,可以根据需要添加更多颜色。
for i in range(num_fireworks):
x = random.randint(0, WIDTH) # 在屏幕的随机位置初始化烟花
y = random.randint(0, HEIGHT) # 在屏幕的随机位置初始化烟花的高度,这里使用了随机数来模拟烟花的上升和下落过程。
color = random.choice(colors) # 在预设的颜色中随机选择一种颜色来绘制烟花。
speed = random.randint(1, speed) # 在预设的速度范围内随机选择一种速度来控制烟花的运动。
fireworks.append({'x': x, 'y': y, 'color': color, 'size': size, 'speed': speed}) # 将烟花的信息保存在字典中,以便后续的绘制和移动操作。
while True: # 主循环,不断更新烟花的状态并绘制出来,直到用户关闭窗口。
check_quit() # 检查是否需要退出程序。
control_fireworks(fireworks) # 控制烟花的移动和绘制。
pygame.time.Clock().tick(60) # 设置帧率为60帧/秒,以保证动画的流畅度。如果需要提高或降低帧率,可以修改这个参数。
pygame.quit() # 在程序退出前调用这个函数,以释放资源。
if __name__ == '__main__': # 如果这个文件被直接运行而不是作为模块导入,就执行这个代码块。
main() # 调用main函数,开始执行程序。