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"


Animator

The Animator is a lightweight, non-blocking animation controller for the PyGame-S engine. It handles state-based image swapping and mathematical transformations without using time.sleep().

Features

  • Non-Blocking: Uses time.time() for frame timing so the game loop never freezes.
  • State-Aware: Automatically detects the target's current state to play the correct animation sequence.
  • Math Effects: Built-in support for sine-wave hovering and continuous rotation.
  • Decoupled: Works on any object with a .state and an .animations dictionary.

Requirements

  • pygame
  • time
  • math

Functions

refresh()

Updates the target.image to the next frame based on animation_speed.

hover(amplitude=5, speed=5)

Creates a vertical bobbing effect using math.sin().

  • amplitude: Height of the motion.
  • speed: Frequency of the motion.

rotate_loop(speed=100)

Continuously rotates the sprite's image.

set_speed(speed)

Updates the animation delay.

Quick Start

anim = Animator(player, 0.1)

# In Loop
anim.refresh()
anim.hover(10, 2)

## Native Pygame

Since PyGame-S uses `from pygame import *` internally, all Pygame features are available directly:

```python
from pygames.advanced import *

mixer.music.load("background.mp3")
mixer.music.play(-1)

draw.rect(game.screen, "red", (100, 100, 50, 50))

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.8.1

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.8.1.tar.gz (12.9 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.8.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file pygames_simplified-1.8.1.tar.gz.

File metadata

  • Download URL: pygames_simplified-1.8.1.tar.gz
  • Upload date:
  • Size: 12.9 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.8.1.tar.gz
Algorithm Hash digest
SHA256 b94a25f860eed083bd324674d698fcdfca6cc5a9af6a514931643168fb762c6f
MD5 c66b8d3b881202c6d1af6ad443bea2d6
BLAKE2b-256 3219a9ebf98caaabfdacd51da95108457debdcd4ec8049de14a3a433a3cd4c9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pygames_simplified-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6cb14e757cc89b3bbd9ae20833323821eba762702c2561bd27eb4fdd7fff4dc
MD5 9ca3ddfe06858620d1798a50d366cddc
BLAKE2b-256 291400d972f32a20b451ec516fa63e08e2a963e99f796add01ff3a02f31c51e8

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