Une librairie légère pour gérer les spritesheets et flipbooks dans Pygame
Project description
Animesprite-pygame
Une librairie légère et facile à utiliser pour gérer les spritesheets et les flipbooks dans Pygame. Idéale pour créer des animations de personnages, d'ennemis ou d'effets visuels dans vos jeux.
Caractéristiques
✨ Gestion facile des spritesheets - Charger et extraire des sprites automatiquement d'une grille
🎬 Animation fluide - Système d'animation intégré avec contrôle de la vitesse
🎮 Sprite animé - Classe AnimatedSprite héritant de pygame.sprite.Sprite pour intégration facile
⚙️ Flexible - Redimensionnement, boucle, pause/reprendre l'animation
📦 Léger - Zéro dépendance à part Pygame
Installation
Depuis le répertoire du projet
pip install -e .
Via pip (une fois publié sur PyPI)
pip install animsprite_pygame
Dépendances
- Python >= 3.8
- Pygame >= 2.0
Utilisation rapide
1. Charger un spritesheet et extraire les sprites
from animsprite_pygame import Spritesheet
# Charger l'image du spritesheet
sheet = Spritesheet("path/to/spritesheet.png")
# Extraire les sprites organisés en grille (4 colonnes, 4 lignes, 32x32 pixels chacun)
frames = sheet.get_sprites_from_grid(
sprite_width=32,
sprite_height=32,
cols=4,
rows=4
)
# Ou extraire un sprite spécifique
single_sprite = sheet.get_sprite(x=0, y=0, width=32, height=32)
2. Créer un sprite animé
from animsprite_pygame import AnimatedSprite
# Créer un sprite animé avec les frames
animated_sprite = AnimatedSprite(
frames=frames,
x=100, # Position X
y=100, # Position Y
animation_speed=0.1, # Délai entre les frames en secondes
loop=True # Boucler l'animation?
)
# L'ajouter à un groupe de sprites
all_sprites.add(animated_sprite)
3. Mettre à jour et afficher dans votre boucle de jeu
# Dans votre boucle de jeu
delta_time = clock.tick(60) / 1000 # Temps écoulé en secondes
# Mettre à jour
all_sprites.update(delta_time)
# Afficher
screen.fill((0, 0, 0))
all_sprites.draw(screen)
pygame.display.flip()
API
Classe Spritesheet
__init__(filepath: str)
Charge un spritesheet à partir d'une image.
Paramètres:
filepath: Chemin vers le fichier image
get_sprite(x, y, width, height, scale=None) -> pygame.Surface
Extrait un sprite unique du spritesheet.
Paramètres:
x: Position X du spritey: Position Y du spritewidth: Largeur du spriteheight: Hauteur du spritescale: Tuple (width, height) pour redimensionner (optionnel)
get_sprites_from_grid(sprite_width, sprite_height, cols, rows=None, scale=None) -> List[pygame.Surface]
Extrait tous les sprites du spritesheet organisés en grille.
Paramètres:
sprite_width: Largeur de chaque spritesprite_height: Hauteur de chaque spritecols: Nombre de colonnesrows: Nombre de lignes (optionnel, calcul automatique)scale: Tuple (width, height) pour redimensionner
Classe AnimatedSprite
Hérite de pygame.sprite.Sprite
__init__(frames, x=0, y=0, animation_speed=0.1, loop=True)
Crée un sprite animé.
Paramètres:
frames: Liste des surfaces Pygame (frames de l'animation)x: Position X initialey: Position Y initialeanimation_speed: Délai entre les frames (en secondes)loop: Si l'animation boucle ou s'arrête
update(delta_time=1/60)
Met à jour l'animation (à appeler dans votre boucle de jeu).
play()
Démarre l'animation.
stop()
Arrête l'animation.
reset()
Réinitialise l'animation au début.
set_animation_speed(speed: float)
Change la vitesse de l'animation.
move(x: float, y: float)
Déplace le sprite.
set_position(x: float, y: float)
Définit la position du sprite.
get_position() -> Tuple[float, float]
Retourne la position actuelle (x, y).
get_current_frame_index() -> int
Retourne l'index de la frame actuelle.
get_total_frames() -> int
Retourne le nombre total de frames.
Exemples
Consultez le dossier examples/ pour des exemples complets:
- example1_basic.py - Animation basique avec contrôle (pause/reset)
- example2_movement.py - Sprite avec mouvement contrôlable au clavier
- example3_multiple_animations.py - Gestion de plusieurs animations et changement de state
Créer vos propres spritesheets
Ressources gratuites
- OpenGameArt.org - Sprites et assets libres
- Itch.io - Assets créés par la communauté
- Kenney.nl - Assets libres de qualité
Créer votre propre spritesheet
- Créez ou trouvez des images de sprites individuels
- Arrangez-les dans une grille sur une seule image
- Placez-les sans espaces ou avec des espaces réguliers
- Utilisez
get_sprites_from_grid()en spécifiant les dimensions
Conseils d'utilisation
Optimisation de la performance
# Pré-charger tous les spritesheets au démarrage
sprites_dict = {
'player': Spritesheet("player.png").get_sprites_from_grid(32, 32, 4, 4),
'enemy': Spritesheet("enemy.png").get_sprites_from_grid(32, 32, 4, 4),
}
# Puis réutiliser les frames
player = AnimatedSprite(sprites_dict['player'])
enemy = AnimatedSprite(sprites_dict['enemy'])
Créer des variantes de sprites
# Obtenir les frames à différentes résolutions
small_frames = sheet.get_sprites_from_grid(32, 32, 4, 4, scale=(16, 16))
large_frames = sheet.get_sprites_from_grid(32, 32, 4, 4, scale=(64, 64))
Licence
MIT - Voir LICENSE
Contribution
Les contributions sont bienvenues ! N'hésitez pas à:
- Signaler des bugs
- Proposer des améliorations
- Soumettre des pull requests
Créé avec ❤️ pour les développeurs de jeux Pygame
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 animsprite_pygame-0.2.1.tar.gz.
File metadata
- Download URL: animsprite_pygame-0.2.1.tar.gz
- Upload date:
- Size: 711.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
844f7ff9c6961de9c48c919ceb402784ea961cadaf131b1080d6ef26aae7745e
|
|
| MD5 |
97c55779ff9bc43a4822666cf320fecd
|
|
| BLAKE2b-256 |
5450a11da4709342adb9b7a1e6384840b7e4105fb2869a99e6ff54ebfcf3b470
|
File details
Details for the file animsprite_pygame-0.2.1-py3-none-any.whl.
File metadata
- Download URL: animsprite_pygame-0.2.1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2573b1fa11f201d662e085ced22ae6cf142aa9a21fd41cfe33919d4fe2dd342
|
|
| MD5 |
ea1aeeaba94a34f76a614513a220f651
|
|
| BLAKE2b-256 |
fbda6084ade7bbe2bab00773af4654d7729bc6f8e6065885881b4560228ddc8f
|