PyGame Simplified — A beginner-friendly wrapper around Pygame
Project description
PyGame-S — PyGame Simplified
PyGame-S is a beginner-friendly wrapper around Pygame that simplifies game development without limiting what you can build. Write less boilerplate, focus more on your game.
Installation
Place the pygames folder inside your project or install it into your Python environment's site-packages. Or on your terminal type pip install pygames-simplified
Then import based on the complexity level you need:
from pygames.medium import * # Physics only
from pygames.advanced import * # Physics + Player
Complexity Tiers
| Import | What you get |
|---|---|
medium |
Core engine + physics (no player input) |
advanced |
Core engine + physics + controllable player |
Quick Start
from pygames.advanced import *
game = pygames(800, 600, "My Game")
player = Player(game, 100, 300)
ground = SSprites(game, 0, 550, source=Surface((800, 50)))
ground.image.fill("green")
game.start(player)
game.make_solid(ground)
def logic():
game.background("skyblue")
player.tick()
game.mainloop(logic)
Core — pygames
game = pygames(w=800, h=600, title="My Game", icon_path=None)
| Method | Description |
|---|---|
game.background(color) |
Fill the screen with a color each frame |
game.start(*objects) |
Register objects to be drawn and updated |
game.make_solid(*objects) |
Mark objects as collidable |
game.key(name) |
Check if a key is pressed — e.g. "left", "space", "w" |
game.start_score_counter() |
Display score on screen |
game.score |
Set or update the score value |
game.start_garbage_collecter() |
Auto-remove off-screen objects |
game.load_image(name, path) |
Load an image by name |
game.image(name, x, y, w, h) |
Draw a loaded image |
game.load_sound(name, path) |
Load a sound by name |
game.play_sound(name) |
Play a loaded sound |
game.mainloop(logic) |
Start the game loop |
game.zoom(factor) |
Resize the window by a multiplier |
Base Sprite — SSprites
obj = SSprites(game, x, y, image_path=None, source=None)
The base class for all game objects. Accepts an image path, a raw Surface, or defaults to a white square.
| Method | Description |
|---|---|
obj.draw() |
Draws the object to the screen |
obj.move(dx, dy) |
Moves the object by an offset |
Physics — PhysicSprite (medium)
obj = PhysicSprite(game, x, y, width=50, height=50, color="red")
Extends SSprites with gravity, collision, and velocity.
| Attribute | Description |
|---|---|
obj.vel_x |
Horizontal velocity |
obj.vel_y |
Vertical velocity |
obj.gravity |
Gravity strength (default 0.8) |
obj.max_fall_speed |
Max fall speed to prevent tunneling (default 20) |
obj.on_ground |
True if standing on a solid |
| Method | Description |
|---|---|
obj.apply_physics(solids) |
Apply gravity and collision — called automatically |
obj.jump(force=15) |
Jump if on the ground |
Player — Player (advanced)
player = Player(game, x, y, width=40, height=60, color="blue", speed=5,
left="left", right="right", jump="space")
Extends PhysicSprite with keyboard input. Key bindings are fully customizable.
| Method | Description |
|---|---|
player.tick() |
Process input — call this in your game logic function |
player.handle_input() |
Handles left, right, and jump keys |
Supported Keys
Pass any of these strings to game.key() or as custom key bindings:
"left", "right", "up", "down", "space", "esc", "enter", "shift", "ctrl", "tab", "backspace", or any letter/number like "a", "w", "1"
Native Pygame
Since PyGame-S uses from pygame import * internally, all Pygame features are available directly:
from pygames.advanced import *
mixer.music.load("background.mp3")
mixer.music.play(-1)
draw.rect(game.screen, "red", (100, 100, 50, 50))
For more advanced usage, you can also import Pygame directly:
import pygame as pg
pg.mixer.music.set_volume(0.5)
Error Handling
PyGame-S raises clear errors to help you debug:
| Error | Cause |
|---|---|
NameError |
Invalid file path or missing sound/image |
TypeError |
Wrong type passed to width, height, speed, or jump force |
ValueError |
Negative speed value |
Version
Current release: v1.7.3
Inspired by Pygame Zero, built to be more Pythonic, flexible, and extensible.
Links
- GitHub: https://github.com/manupolice12-sketch/pygames
- Bug Reports: https://github.com/manupolice12-sketch/pygames/issues
Requirements
pygames-simplified uses pygame-ce (Community Edition) for better performance and active maintenance.
Note
If you have the original pygame installed, uninstall it first: pip uninstall pygame pip install pygames-simplified
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 pygames_simplified-1.7.3.tar.gz.
File metadata
- Download URL: pygames_simplified-1.7.3.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6060c12a3a2b47dccb87a9a955bd04db5c6d26c9752884e08289ad249cca3be
|
|
| MD5 |
17d357aaa04d9b0303cb30ea4a75c482
|
|
| BLAKE2b-256 |
cf10b8cf3d8556b37e5b7d4f3c08d1337862307ac90b851420d47e157ea1f95e
|
File details
Details for the file pygames_simplified-1.7.3-py3-none-any.whl.
File metadata
- Download URL: pygames_simplified-1.7.3-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb60d92375c6bec00b023e8f0c8ad7a3fa8e6b8a541c6a5735dd9fb8b7283b4b
|
|
| MD5 |
97c587493244269b2f88d81e62313d93
|
|
| BLAKE2b-256 |
51e5fc510bb10b2445aa4ed65e2f3352447560d35405bf855ffc54643114627c
|