Skip to main content

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

PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygames_simplified-1.7.3.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygames_simplified-1.7.3-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

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

Hashes for pygames_simplified-1.7.3.tar.gz
Algorithm Hash digest
SHA256 c6060c12a3a2b47dccb87a9a955bd04db5c6d26c9752884e08289ad249cca3be
MD5 17d357aaa04d9b0303cb30ea4a75c482
BLAKE2b-256 cf10b8cf3d8556b37e5b7d4f3c08d1337862307ac90b851420d47e157ea1f95e

See more details on using hashes here.

File details

Details for the file pygames_simplified-1.7.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pygames_simplified-1.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fb60d92375c6bec00b023e8f0c8ad7a3fa8e6b8a541c6a5735dd9fb8b7283b4b
MD5 97c587493244269b2f88d81e62313d93
BLAKE2b-256 51e5fc510bb10b2445aa4ed65e2f3352447560d35405bf855ffc54643114627c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page