Skip to main content

A short library for easy to use particles in Pygame.

Project description

ParticlePy

Documentation Status PyPi Latest Stable

ExamplesDocumentationPyPi

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/

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.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

particlepy-1.1.0-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file particlepy-1.1.0.tar.gz.

File metadata

  • Download URL: particlepy-1.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for particlepy-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c1fb027db49f882ece6c994044673e57c1c49409dce52ba7b3d94d9a0a25ca28
MD5 7d4fffa4db2a22049f827bf98d6e6898
BLAKE2b-256 5b3697cbb27a6752fbc856f41585efcad38a970bacdc948e707347ca7b839cd4

See more details on using hashes here.

File details

Details for the file particlepy-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: particlepy-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for particlepy-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96c311578bb30ce56e52321d972f84899d14f46a31d4e7d42515105718694e2b
MD5 d648e8f98a1ab94bf88c2722cb3b055b
BLAKE2b-256 b21f9a04a0ba0f5330fe1a3ae3c1a9b3b1a8f1c71ca193768d97b874ce7658d8

See more details on using hashes here.

Supported by

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