58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
Pygame Framework
|
|
================
|
|
|
|
PGFW is a game framework that facilitates the creation and development of [Pygame][] projects. It contains a class `Game` which can be inherited and used as a project skeleton. There are also classes for features such as sprites, animations, audio, b-splines, geometry, and screen capture. It is a collection of code used in previous projects with a focus on creating 2D games. Some examples of games using it are [Picture Processing][], [Scrapeboard][], and [Cakefoot][].
|
|
|
|
Requirements
|
|
------------
|
|
|
|
* Python 3+
|
|
* [Pygame][] 1.9+
|
|
|
|
Start a project
|
|
---------------
|
|
|
|
Clone the repository (or [download][https://git.nugget.fun/nugget/pgfw/archive/main.zip] and unzip it)
|
|
|
|
git clone https://git.nugget.fun/nugget/spacebox
|
|
|
|
Save the following script at the root of the repository to create a project that redraws a square at a random location every second. The project can be run with `python3 [SCRIPT]`. Maybe some cats may even like this game. This script is also available in [sample.py][].
|
|
|
|
from time import sleep
|
|
from random import randint
|
|
|
|
from pgfw.Game import Game
|
|
|
|
class SampleGame(Game):
|
|
|
|
square_width = 30
|
|
|
|
# instructions in the update method automatically run once every frame
|
|
def update(self):
|
|
sleep(1)
|
|
screen = self.get_screen()
|
|
bounds = screen.get_size()
|
|
screen.fill((0, 0, 0))
|
|
screen.fill((255, 255, 255),
|
|
(randint(0, bounds[0]), randint(0, bounds[1]),
|
|
self.square_width, self.square_width))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
SampleGame().run()
|
|
|
|
To further build this example, the [Pygame API][] and classes in [pgfw/][] could be imported and used directly in the update function.
|
|
|
|
License
|
|
-------
|
|
|
|
Unrestricted use, under the zlib license, see [LICENSE.txt][LICENSE.txt]
|
|
|
|
[Pygame]: https://pygame.org
|
|
[Pygame API]: https://www.pygame.org/docs
|
|
[Picture Processing]: https://ohsqueezy.itch.io/ppu
|
|
[Scrapeboard]: https://scrape.nugget.fun
|
|
[Cakefoot]: https://ohsqueezy.itch.io/cakefoot
|
|
[sample.py]: sample.py
|
|
[pgfw/]: pgfw/
|