A high-level cross-platform 2D game framework for Python with desktop, web, and mobile workflows.
Project description
SpritePro
Высокоуровневый 2D game framework на Python (поверх pygame). Desktop, web и mobile из одной кодовой базы.
Установка
pip install spritepro
Для mobile: pip install "spritepro[kivy]"
Шаблон проекта: python -m spritePro.cli --create
Обновление
pip install --upgrade spritepro
Почему SpritePro
| Обычно приходится | В SpritePro |
|---|---|
| Ручной игровой цикл | s.run(scene=...) — сцена + auto-render |
| Своя камера | Camera API, follow, zoom, shake |
| UI с нуля | Button, ToggleButton, TextSprite, Slider, Layout |
| Физика отдельно | pymunk-интеграция, типы тел, коллизии |
| Визуальный editor | Sprite Editor → JSON → spawn_scene(...) |
| Сохранения парсить | PlayerPrefs → JSON |
| Mobile отдельно | platform="kivy" — та же логика |
SpritePro = pygame + физика, Layout, редактор сцен, мультиплеер, UI.
Быстрый старт
import spritePro as s
class MainScene(s.Scene):
def __init__(self):
super().__init__()
self.player = s.Sprite("", (50, 50), s.WH_C, speed=5, scene=self)
def update(self, dt):
self.player.handle_keyboard_input()
s.run(scene=MainScene, size=(800, 600), title="My Game")
Всё: окно, сцена, игровой цикл, управление.
Что внутри
- Sprite — базовый класс с движением, эффектами
- UI: Button, ToggleButton, Slider, TextSprite, Layout (flex/grid/circle/line)
- Физика: pymunk, DYNAMIC/STATIC/KINEMATIC тела, коллизии
- Анимации: Tween, Fluent API (
DoMove,DoScale,SetEase...) - Частицы: ParticleEmitter, шаблоны, пулы
- Мультиплеер: TCP, лобби, синхронизация
- Audio: звук и музыка
- Save/Load: PlayerPrefs в JSON
- Sprite Editor: визуальная сборка сцен → JSON
Sprite Editor
Визуальный редактор сцен с иерархией, инспектором, gizmo.
python -m spritePro.cli --editor
Собираете сцену → сохраняете в JSON → загружаете в игре:
rt = spawn_scene("level.json", scene=self)
player = rt.exact("player").Sprite(speed=5)
Сравнение
| Функция | pygame | arcade | SpritePro |
|---|---|---|---|
| Авто-рендер | ❌ | ✅ | ✅ |
| Готовая камера | ❌ | ✅ | ✅ |
| Физика (pymunk) | ❌ | ✅ | ✅ |
| Layout (flex/grid) | ❌ | ❌ | ✅ |
| Редактор сцен (JSON) | ❌ | ❌ | ✅ |
| Мультиплеер (TCP) | ❌ | ❌ | ✅ |
| PlayerPrefs | ❌ | ❌ | ✅ |
Что создать
- Платформеры, аркады, RPG
- Пазлы, tower defense
- Мультиплеерные игры
- Мобильные игры (
platform="kivy")
Демо-игры
python -m spritePro.demoGames.physics_demo # физика
python -m spritePro.demoGames.fluent_tween_demo # твины
python -m spritePro.demoGames.layout_demo # лейауты
python -m spritePro.demoGames.local_multiplayer_demo --quick
Mobile и Web
s.run(scene=MainScene, platform="kivy") # Android/iOS
python -m spritePro.cli --android . --android-orientation portrait
Web: docs/builds/building_web.md
Документация
| Что | Где |
|---|---|
| Полный индекс | DOCUMENTATION_INDEX.md |
| Для новичков | docs/GETTING_STARTED.md |
| Физика | docs/core/physics_guide.md |
| UI/Layout | docs/ui/layout_ui.md |
| Мультиплеер | docs/systems/networking_guide.md |
| Sprite Editor | docs/editor/sprite_editor.md |
| Mobile | docs/builds/mobile_kivy.md |
Вклад
- CONTRIBUTING.md — как внести вклад
- ROADMAP.md — планы развития
- CHANGELOG.md — история изменений
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 spritepro-3.5.0.tar.gz.
File metadata
- Download URL: spritepro-3.5.0.tar.gz
- Upload date:
- Size: 319.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dc0a5ae64f11293630cf1af638147a4abcb1a9f023c8c14a992e31070e03ece
|
|
| MD5 |
5b3f28576cb8ada7e1c142e6a7c87fd7
|
|
| BLAKE2b-256 |
a4e389570f9c55b66d25959ccc36db0529afbad0338dbdbdc77f1893386d6d35
|
Provenance
The following attestation bundles were made for spritepro-3.5.0.tar.gz:
Publisher:
publish-to-pypi.yml on NeoXider/SpritePro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spritepro-3.5.0.tar.gz -
Subject digest:
5dc0a5ae64f11293630cf1af638147a4abcb1a9f023c8c14a992e31070e03ece - Sigstore transparency entry: 1279639336
- Sigstore integration time:
-
Permalink:
NeoXider/SpritePro@9c4f0d9a337f5bd50b827f4d496965159906cacf -
Branch / Tag:
refs/tags/v3.5.0 - Owner: https://github.com/NeoXider
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9c4f0d9a337f5bd50b827f4d496965159906cacf -
Trigger Event:
release
-
Statement type:
File details
Details for the file spritepro-3.5.0-py3-none-any.whl.
File metadata
- Download URL: spritepro-3.5.0-py3-none-any.whl
- Upload date:
- Size: 393.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc36c9297c606476483c298846ab160a54e80560ca67f4432ba86162bf25e720
|
|
| MD5 |
57dd113b0d806683da5dc73823fa3c5d
|
|
| BLAKE2b-256 |
0861cffdb157c5a82eafd5e7afd63d58aa3ac460aef79eb8fea12b375407acc7
|
Provenance
The following attestation bundles were made for spritepro-3.5.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on NeoXider/SpritePro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spritepro-3.5.0-py3-none-any.whl -
Subject digest:
cc36c9297c606476483c298846ab160a54e80560ca67f4432ba86162bf25e720 - Sigstore transparency entry: 1279639356
- Sigstore integration time:
-
Permalink:
NeoXider/SpritePro@9c4f0d9a337f5bd50b827f4d496965159906cacf -
Branch / Tag:
refs/tags/v3.5.0 - Owner: https://github.com/NeoXider
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9c4f0d9a337f5bd50b827f4d496965159906cacf -
Trigger Event:
release
-
Statement type: