lordmauve / pgzero

A zero-boilerplate games programming framework for Python 3, based on Pygame.
https://pygame-zero.readthedocs.io/
GNU Lesser General Public License v3.0
539 stars 188 forks source link
education game-framework pygame python-game-development python3

.. image:: https://img.shields.io/github/workflow/status/lordmauve/pgzero/Run%20tests/master :target: https://github.com/lordmauve/pgzero/actions/workflows/test.yml :alt: GitHub Test Status

.. image:: https://img.shields.io/pypi/v/pgzero :target: https://pypi.org/project/pgzero/ :alt: PyPI

.. image:: https://img.shields.io/pypi/dm/pgzero :target: https://pypistats.org/packages/pgzero :alt: PyPI - Downloads

.. image:: https://img.shields.io/readthedocs/pygame-zero :target: https://pygame-zero.readthedocs.io/ :alt: Read the Docs

Pygame Zero

A zero-boilerplate games programming framework for Python 3, based on Pygame.

Some examples

Pygame Zero consists of a runner pgzrun that will run a Pygame Zero script with a full game loop and a range of useful builtins.

Here's some of the neat stuff you can do. Note that each of these is a self-contained script. There's no need for any imports or anything else in the file.

Draw graphics (assuming there's a file like images/dog.png or images/dog.jpg)::

def draw():
    screen.clear()
    screen.blit('dog', (10, 50))

Play the sound sounds/eep.wav when you click the mouse::

def on_mouse_down():
    sounds.eep.play()

Draw an "actor" object (with the sprite images/alien.png) that moves across the screen::

alien = Actor('alien')
alien.pos = 10, 10

def draw():
    screen.clear()
    alien.draw()

def update():
    alien.x += 1
    if alien.left > WIDTH:
        alien.right = 0

Installation

See installation instructions__.

.. __: http://pygame-zero.readthedocs.org/en/latest/installation.html

Documentation

The full documentation is at http://pygame-zero.readthedocs.org/.

Read the tutorial at http://pygame-zero.readthedocs.org/en/latest/introduction.html for a taste of the other things that Pygame Zero can do.

Contributing

The project is hosted on Github:

https://github.com/lordmauve/pgzero

If you want to help out with the development of Pygame Zero, you can find some instructions on setting up a development version in the docs:

http://pygame-zero.readthedocs.org/en/latest/contributing.html