Skip to main content

A short library for easy to use particles in Pygame.

Project description

ParticlePy

v1.0.2

Documentation Status PyPi Version

ExamplesDocumentationPyPi

A short library for easy to use particles in Pygame based on DaFluffyPotato's particle system.

Installation

Dependencies

  • Sphinx
  • sphinx_rtd_theme
  • pygame
  • setuptools
pip install -r requirements.txt

Versions

Latest

Pip

pip install --upgrade particlepy

or

pip install --upgrade git+https://github.com/grimmigerFuchs/ParticlePy.git

Git

git clone https://github.com/grimmigerFuchs/ParticlePy.git
cd ParticlePy/
python3 setup.py install

Usage

This is a short example of how to use this library. Examples can be found in the examples folder.

#!/usr/bin/env python3
# example.py

import pygame
import particlepy
import sys
import time
import random

pygame.init()

# pygame config
SIZE = 800, 800
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("ParticlePy example program")
pygame.mouse.set_visible(False)

# timing
clock = pygame.time.Clock()
FPS = 60

# delta time
old_time = time.time()
delta_time = 0

# particle system to manage particles
particle_system = particlepy.particle.ParticleSystem()

# main loop
while True:
    # quit window
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                pygame.quit()
                sys.exit()

    # delta time
    now = time.time()
    delta_time = now - old_time
    old_time = now

    # get mouse position
    mouse_pos = pygame.mouse.get_pos()

    for _ in range(5):
        particle_system.emit(
            particlepy.particle.Particle(shape=particlepy.shape.Rect(radius=16, angle=random.randint(0, 360), color=(3, 80, 111), alpha=255),
                                         position=mouse_pos,
                                         velocity=(random.uniform(-150, 150), random.uniform(-150, 150)),
                                         delta_radius=0.2))

    # update particle properties
    particle_system.update(delta_time=delta_time)

    # color manipulation
    for particle in particle_system.particles:
        particle.shape.color = particlepy.math.fade_color(particle=particle,
                                                          color=(83, 150, 181),
                                                          progress=particle.inverted_progress)

    # render shapes
    particle_system.make_shape()

    # post shape creation manipulation
    for particle in particle_system.particles:
        particle.shape.angle += 5

    # render particles
    particle_system.render(surface=screen)

    # update display
    pygame.display.update()
    screen.fill((13, 17, 23))
    clock.tick(FPS)

Gif of particle simulation

License

Distributed under the MIT License. See LICENSE for more information.

Contact

grimmigerFuchs - grimmigerfuchs@gmail.com
Github Repository: https://github.com/grimmigerFuchs/ParticlePy
PyPi Project: https://pypi.org/project/particlepy/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

particlepy-1.0.2.tar.gz (8.3 kB view hashes)

Uploaded Source

Built Distribution

particlepy-1.0.2-py3-none-any.whl (7.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page