A pygame engine for common game operations like vector math and maintaining events in the game loop
Project description
Game Utils
0.2.0
game-utils is a pygame engine. The engine includes modules to facilitate boilerplate game operations.
Requirements
Dependences:
- pygame
- numpy
Example usage
from game_utils.game import Game
import pygame
class MyAwesomeGame(Game):
def __init__(self, player_speed: int, screen_settings: Game.ScreenSettings):
super().__init__(screen_settings)
# Where, and how big, to draw the player.
# I like to scale things by the screen size.
self.player_radius = self.screen_settings.height / 4
self.player_rect = pygame.Rect(
self.screen_settings.height / 2 - self.player_radius,
self.screen_settings.width / 2 - self.player_radius,
self.player_radius * 2,
self.player_radisu * 2,
)
self.player_speed = player_speed
def _update_screen(self):
self.screen_settings.screen.fill(
self.screen_settings.bg_color or "dodgerblue2"
)
pygame.draw.circle(
self.screen_settings.screen,
"lightseagreen",
self.player_rect.center,
self.player_radius
)
def _update(self):
# any other game logic...
# This came from a tutorial I found on custom events...
pressed_keys = pygame.key.get_pressed()
up, down, left, right = map(
lambda key: key * self.player_speed,
[pressed_keys[key] for key in [pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT]]
)
self.player_rect.move_ip((-left + right, -up + down))
if __name__ == "__main__":
# these could also come from a config file
game = MyAwesomeGame(
player_speed=10,
screen_settings=Game.ScreenSettings(
bg_color="coral2",
width=600,
height=400
)
)
print("Starting game...")
game.run()
print("Thanks for playing!")
Tooling
These are tools for various packaging strategies for your game
python -m game_utils.tooling package batocera
See Also...
My ongoing game projects
- Madmadam Games gitlab
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
game_utils-0.2.0.tar.gz
(18.0 kB
view details)
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 game_utils-0.2.0.tar.gz.
File metadata
- Download URL: game_utils-0.2.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d127b87b9e9ef23f8aab23cfd7f825744f0878c840c98875c6424dfd56fef6a2
|
|
| MD5 |
e1185395f630a3dbd86762bb6e20aa83
|
|
| BLAKE2b-256 |
df718865a1a9c7fc05f965abb8dc54a139f9b3b9893b4b4ca4ca1da3d7576abf
|
File details
Details for the file game_utils-0.2.0-py3-none-any.whl.
File metadata
- Download URL: game_utils-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d52a3ad3d02cbb1d6df60ca3e785a53f04dabc373581b17601f465fb57c0e6f
|
|
| MD5 |
e66944b8a60458f7b0354c8f0ee85783
|
|
| BLAKE2b-256 |
9b2eb97c72687a0a41d87d9ae9f72fdc80ee8d965203ee94a2167780d8586a84
|