diff --git a/main.py b/main.py index e69de29..6a755c0 100644 --- a/main.py +++ b/main.py @@ -0,0 +1,69 @@ +import pygame +import random +from particle import Particle + +pygame.init() + +# Set up display and clock. +screen = pygame.display.set_mode((800, 600)) +pygame.display.set_caption("Particle Test") +clock = pygame.time.Clock() + +particles = [] + +running = True +while running: + dt = clock.tick(60) / 1000.0 # Delta time in seconds. + + # Event loop: quit on window close or spawn new particles on mouse click. + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + elif event.type == pygame.MOUSEBUTTONDOWN: + # Create several particles at the mouse position. + for _ in range(10): + pos = pygame.mouse.get_pos() + vel = (random.uniform(-100, 100), random.uniform(-100, 100)) + p = Particle( + pos=pos, + vel=vel, + acceleration=(0, 0), + lifetime=2.0, + decay_rate=1, + color=( + random.randint(100, 255), + random.randint(100, 255), + random.randint(100, 255) + ), + size=5, + size_decay=2, + glow=True, + glow_intensity=1.0, + friction=0.1, + gravity=50, + bounce=True, + bounce_damping=0.7, + random_spread=10, + spin=0, + spin_rate=random.uniform(-180, 180), + spin_decay=0.5, + trail=True, + trail_length=15, + fade=True, + shape='circle' + ) + particles.append(p) + + # Clear the screen. + screen.fill((0, 0, 0)) + + # Update and draw each particle. + for particle in particles[:]: + particle.update(dt, screen.get_rect()) + particle.draw(screen) + if particle.is_dead(): + particles.remove(particle) + + pygame.display.flip() + +pygame.quit()