Фейерверки всегда добавляют ярких красок различным фестивалям и праздникам. Сегодня мы будем использовать Python для создания динамического эффекта фейерверка, чтобы на вашем экране можно было отображать красочную анимацию фейерверка. Эта статья шаг за шагом проведет вас по достижению этого эффекта и покажет, как использовать библиотеку Pygame для создания анимации.
Прежде чем начать, вам необходимо убедиться, что в вашей системе установлена библиотека Pygame. Если вы еще не установили его, вы можете установить его с помощью следующей команды:
pip install pygame
Pygame — это кроссплатформенный модуль Python для написания видеоигр. Он включает библиотеки компьютерной графики и звука, упрощающие разработку игр.
Сначала нам нужно импортировать библиотеку Pygame и другие необходимые модули:
import pygame
import random
import math
Нам нужно Инициализировать Pygame и установить основные параметры экрана:
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Анимация фейерверков")
часы = pygame.time.Clock()
мы создаемParticle
Класс для определения свойств и поведения частиц фейерверка.:
class Particle:
def __init__(self, x, y, color):
self.x = x
self.y = y
self.color = color
self.angle = random.uniform(0, 2 * math.pi)
self.speed = random.uniform(2, 5)
self.radius = random.randint(2, 4)
self.lifetime = random.randint(50, 100)
def update(self):
self.x += self.speed * math.cos(self.angle)
self.y += self.speed * math.sin(self.angle)
self.lifetime -= 1
Мы определяем функцию для создания фейерверки и сохраняем ее в списке:
def create_firework(x, y, color):
particles = [Particle(x, y, color) for _ in range(100)]
return particles
Мы определяем функцию для рисования частиц:
def draw_particle(screen, particle):
pygame.draw.circle(screen, particle.color, (int(particle.x), int(particle.y)), particle.radius)
Мы обновляем и Рисуем частицы в основном цикле и генерируем новые фейерверки по мере необходимости:
particles = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((0, 0, 0))
if random.randint(0, 20) == 0:
x, y = random.randint(100, 700), random.randint(100, 500)
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
particles.extend(create_firework(x, y, color))
for particle in particles[:]:
particle.update()
if particle.lifetime <= 0:
particles.remove(particle)
else:
draw_particle(screen, particle)
pygame.display.flip()
clock.tick(30)
pygame.quit()
import pygame
import random
import math
# Инициализировать Pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Анимация фейерверков")
часы = pygame.time.Clock()
# Определение класса частиц Fireworks
class Particle:
def __init__(self, x, y, color):
self.x = x
self.y = y
self.color = color
self.angle = random.uniform(0, 2 * math.pi)
self.speed = random.uniform(2, 5)
self.radius = random.randint(2, 4)
self.lifetime = random.randint(50, 100)
def update(self):
self.x += self.speed * math.cos(self.angle)
self.y += self.speed * math.sin(self.angle)
self.lifetime -= 1
# Создавайте фейерверки
def create_firework(x, y, color):
particles = [Particle(x, y, color) for _ in range(100)]
return particles
# Рисовать частицы
def draw_particle(screen, particle):
pygame.draw.circle(screen, particle.color, (int(particle.x), int(particle.y)), particle.radius)
# основной цикл
particles = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((0, 0, 0))
if random.randint(0, 20) == 0:
x, y = random.randint(100, 700), random.randint(100, 500)
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
particles.extend(create_firework(x, y, color))
for particle in particles[:]:
particle.update()
if particle.lifetime <= 0:
particles.remove(particle)
else:
draw_particle(screen, particle)
pygame.display.flip()
clock.tick(30)
pygame.quit()