Skip to main content

ParticlePy

Documentation Status PyPi Latest Stable

Examples • Documentation • PyPi

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

Installation

Dependencies

  • pygame

  • numpy

  • setuptools

  • Sphinx

  • sphinx_rtd_theme

Versions

Latest

Pip

pip install --upgrade particlepy

Git

git clone https://github.com/grimmigerFuchs/ParticlePy.git
cd ParticlePy/
pip install -r requirements.txt
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

    # update particle properties
    particle_system.update(delta_time=delta_time)
    print(len(particle_system.particles))

    # 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))

    # 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 example program

License

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

Contact

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

Metadata

Release files for particlepy 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for particlepy 1.1.0
File Size Uploaded
particlepy-1.1.0.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for particlepy 1.1.0
File Interpreter ABI Platform
particlepy-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / particlepy-1.1.0.tar.gz

Download URL particlepy-1.1.0.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c1fb027db49f882ece6c994044673e57c1c49409dce52ba7b3d94d9a0a25ca28
BLAKE2b-256 checksum
How to use checksums
5b3697cbb27a6752fbc856f41585efcad38a970bacdc948e707347ca7b839cd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

Release files / particlepy-1.1.0-py3-none-any.whl

Download URL particlepy-1.1.0-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
96c311578bb30ce56e52321d972f84899d14f46a31d4e7d42515105718694e2b
BLAKE2b-256 checksum
How to use checksums
b21f9a04a0ba0f5330fe1a3ae3c1a9b3b1a8f1c71ca193768d97b874ce7658d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page