A short library for easy to use particles in Pygame.
Project description
ParticlePy
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)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1fb027db49f882ece6c994044673e57c1c49409dce52ba7b3d94d9a0a25ca28
|
|
| MD5 |
7d4fffa4db2a22049f827bf98d6e6898
|
|
| BLAKE2b-256 |
5b3697cbb27a6752fbc856f41585efcad38a970bacdc948e707347ca7b839cd4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96c311578bb30ce56e52321d972f84899d14f46a31d4e7d42515105718694e2b
|
|
| MD5 |
d648e8f98a1ab94bf88c2722cb3b055b
|
|
| BLAKE2b-256 |
b21f9a04a0ba0f5330fe1a3ae3c1a9b3b1a8f1c71ca193768d97b874ce7658d8
|