# PygamePal

A library of classes and functions to support game development in Pygame.
- Simple, beginner-friendly interface.
- Choose the bits you want to use, and continue to use Pygame for everything else!

![Example](https://github.com/rik-cross/pygamepal/blob/main/examples/gifs/fullExample.gif?raw=true)

Includes:

- A Game class that extracts away a lot of Pygame boilerplate code
- Scenes
- Transitions
- Cameras, including zoom, shake and clamp
- Sprites
- Sprite Images, for creating images and/or animations for multiples states
- Input, including press, down, long-press and double-press
- Buttons that can be controlled by mouse or key press
- Lighting
- Particle Emitters
- Colliders, which have simple collision detection
- Triggers, which execute user-defined functions on collision

### Usage

- Install: `pip install pygamepal`, or
- Install from local source: `pip install -e [repo path]`

[Add suggestions and bugs here!](https://github.com/rik-cross/pygamepal/issues)

### Getting started

- See the [Documentation](https://pygamepal.readthedocs.io/en/latest/) on readthedocs.org.
- See the simple [examples](https://github.com/rik-cross/pygamepal/tree/main/examples) of functionality used (mostly) individually.
- See the [Full example](https://github.com/rik-cross/pygamepal/blob/main/examples/fullExample.py), using lots of PygamePal functionality.

### Licence

Distributed under the MIT License. See [LICENSE](https://github.com/rik-cross/pygamepal/blob/main/LICENSE) for more information.

All images taken from [Sprout Lands](https://cupnooble.itch.io/sprout-lands-asset-pack) asset pack by [Cup Nooble](https://cupnooble.itch.io/) and used under a non-commercial license.