Skip to main content

A high-level cross-platform 2D game framework for Python with desktop, web, and mobile workflows.

Project description

🎮 SpritePro

Создавайте 2D-игры на Python быстрее: editor, runtime, physics, UI, mobile и web в одном фреймворке

Python Pygame License

SpritePro помогает перейти от идеи к играбельному прототипу без тонны инфраструктурного кода.

Меньше борьбы с циклом, камерой, UI, физикой и layout. Больше времени на саму игру.

Demo


Почему это интересно

SpritePro — это не просто обёртка над pygame. Это высокоуровневый 2D game framework с единым developer flow:

  • Desktop, web и mobile из одной кодовой базы
  • Scene-based архитектура, а не разрозненные скрипты
  • Встроенный Sprite Editor с JSON-сценами и запуском игры прямо из editor
  • Камера, физика, частицы, UI, tween, audio, save/load, multiplayer уже внутри
  • Reference resolution, resize-aware runtime и путь к Android/Kivy без переписывания логики

Если коротко: pygame даёт низкий уровень. SpritePro даёт темп разработки.


Что даёт SpritePro

Быстрое прототипирование

Вместо ручной сборки игрового цикла, слоёв, камеры, UI и служебного кода:

import spritePro as s

class MainScene(s.Scene):
    def __init__(self):
        super().__init__()
        self.player = s.Sprite("player.png", (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", fill_color=(20, 20, 30))

Это уже полноценный рабочий старт: scene lifecycle, rendering, input, runtime loop и готовая точка расширения.

Один фреймворк, а не набор разрозненных решений

Что обычно приходится собирать вручную Что уже есть в SpritePro
Рендер-цикл и обновление s.run(...), Scene, auto-render
Камера и слежение Camera API, follow, zoom, shake
UI-слой Button, ToggleButton, TextSprite, Slider, TextInput, Layout
Физика pymunk-интеграция, типы тел, коллизии, сцены из editor
Частицы и эффекты ParticleEmitter, presets, color/tween tools
Сохранения PlayerPrefs, save/load helpers
Визуальная сборка уровней Sprite Editor + spawn_scene(...)
Mobile/web flow platform="kivy", pygbag, build docs

Сильные стороны проекта

  • Scene-first подход: удобно масштабировать игру, а не только прототип
  • Editor-first workflow: сцены можно собирать визуально и поднимать в рантайм как объекты
  • Unity-like удобства: PlayerPrefs, scene runtime, визуальный editor, tooling, callbacks
  • Не отрезает от pygame: при необходимости можно спускаться на низкий уровень
  • Подходит и для solo-dev, и для команды: editor settings и JSON-сцены удобно переносить между проектами и разработчиками

Sprite Editor

В SpritePro встроен визуальный редактор сцен: можно собирать уровни мышью, сохранять в JSON и запускать игру прямо из editor.

Sprite Editor

Что уже умеет editor

  • File / GameObject / Tools / View меню
  • Image, Text, Rectangle, Circle, Ellipse
  • Hierarchy с мини-превью объектов
  • Inspector со свойствами объекта и text-полями
  • gizmo с подписями угла, координат и размера
  • запуск игры через Run или F5
  • окно Settings с сохранением, импортом и экспортом editor-настроек

Запуск editor

python -m spritePro.cli --editor
python -m spritePro.cli -e

Что дальше

  1. Собираете сцену визуально
  2. Сохраняете её в JSON
  3. Загружаете в игре через spawn_scene("scene.json", scene=...)
  4. Получаете объекты по имени и навешиваете логику

Подробнее: docs/sprite_editor.md


Быстрый старт

Установка

pip install spritepro

Для mobile host-режима:

pip install "spritepro[kivy]"

Первая игра

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", fill_color=(20, 20, 30))

Вот и всё. У вас уже есть окно, сцена, игровой цикл, рендер и управление.

Если нужен готовый шаблон проекта

python -m spritePro.cli --create

Команда создаёт структуру проекта с main.py, config.py, assets/, scenes/ и стартовой scene-based архитектурой.


Когда SpritePro особенно хорош

  • когда вы хотите быстро делать играбельные прототипы
  • когда вам нужен визуальный editor, а не только код
  • когда хочется pygame-экосистему, но без постоянной рутины
  • когда важен путь к mobile/web, а не только desktop
  • когда хочется фреймворк, который можно начать просто, а потом масштабировать

🚀 Быстрый старт (30 секунд)

Установка

Способ 1: Установка через pip (рекомендуемый)

Это самый простой и быстрый способ начать работу со SpritePro.

pip install spritepro

Все зависимости, включая pygame, будут установлены автоматически.

Для мобильного host-режима:

pip install "spritepro[kivy]"

Обновление

Чтобы обновить SpritePro до последней версии, используйте команду:

pip install --upgrade spritepro

Способ 2: Для разработчиков (из исходного кода)

Этот способ подходит, если вы хотите внести свой вклад в разработку или использовать самую последнюю, еще не опубликованную версию.

  1. Клонируйте репозиторий:

    git clone https://github.com/NeoXider/SpritePro.git
    
  2. Перейдите в папку проекта:

    cd SpritePro
    
  3. (Опционально) Установите в режиме редактирования:

    pip install -e .
    

    Это позволит вам изменять код библиотеки и сразу видеть изменения в своих проектах.

Ваша первая игра

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", fill_color=(20, 20, 30))

Вот и всё! У вас уже есть игра с управлением, отрисовкой и игровым циклом. Для mobile достаточно сменить platform на "kivy". 🎮

Для файлов ассетов задавайте путь явно от текущего файла, а не от рабочей папки:

from pathlib import Path

ASSETS_DIR = Path(__file__).resolve().parent / "assets" / "images"

def asset_path(name: str) -> str:
    return str((ASSETS_DIR / name).resolve())

Такой способ одинаково корректно работает и в pygame, и в kivy. Подробности: docs/mobile.md.

⚡ Быстрый старт 2.0 (шаблон проекта)

python -m spritePro.cli --create

Создаст main.py в текущей папке и структуру assets/audio, assets/images, scenes. Шаблон теперь сразу современный:

  • main.py запускает игру через s.run(...)
  • config.py — общие настройки игры и готовые пути PROJECT_ROOT, ASSETS_DIR, AUDIO_DIR, IMAGES_DIR, SCENES_DIR, GAME_DIR, DOMAIN_DIR, SERVICES_DIR
  • game_events.py — базовый файл для EventBus: событие старта игры, подписка и лог
  • scenes/main_scene.py — основная сцена, которая грузит config.MAIN_LEVEL_PATH
  • scenes/second_scene.py — вторая почти пустая сцена-заготовка, чтобы было удобно расширять проект
  • scenes/main_level.json — стартовый уровень в формате Sprite Editor
  • game/domain/game_state.py — пример domain-модели
  • game/services/game_service.py — пример сервиса для игровой логики

То есть новый проект после --create уже показывает нормальную scene-based структуру, а не только один файл с ручным циклом.

Если хотите создать проект в отдельной папке, укажите путь:

python -m spritePro.cli --create MyGame

📱 Mobile и Build

Mobile игры

Теперь на SpritePro можно делать и мобильные 2D-игры. Идея простая:

s.run(scene=MainScene, platform="pygame")
s.run(scene=MainScene, platform="kivy")

То есть логика игры остаётся той же, меняется только host-платформа.

Полезные ссылки:

  • Mobile guide — как устроен Kivy runtime и touch-ввод
  • Hybrid Kivy UI guide — Kivy menu/layout + встроенная игровая область SpritePro
  • Build guide — как собирать library, web и mobile build, включая два Android-сценария: локальные правки SpritePro и проверка через pip

Быстрый preview разных экранов через CLI:

python -m spritePro.cli --preview main.py --platform kivy --screen phone-portrait
python -m spritePro.cli --preview main.py --platform kivy --screen phone-tall
python -m spritePro.cli --preview main.py --platform kivy --screen tablet-landscape
python -m spritePro.cli --preview main.py --platform pygame --size 412x915
python -m spritePro.cli --list-screen-presets

Практически это нужно не только для mobile-layout, но и для обычной разработки на небольшом мониторе:

  • не обязательно открывать огромное окно или нативное 4K, чтобы проверить mobile-сцену
  • удобнее тестировать через логические размеры окна вроде 360x640, 412x915, 640x360, 1280x720
  • на реальном телефоне fullscreen-игра может визуально выглядеть мельче, чем в маленьком desktop-окне, поэтому layout лучше сверять на нескольких профилях, а не на одном размере
  • если игра использует s.WH и s.WH_C, помните: при resize они обновляются, но уже созданные объекты не перестраиваются автоматически без вашего relayout-кода

Быстрая Android/APK-сборка через CLI:

python -m spritePro.cli --android .
python -m spritePro.cli --android . --android-mode release
python -m spritePro.cli --android . --android-mode spec
python -m spritePro.cli --android . --android-orientation portrait
python -m spritePro.cli --android . --android-orientation auto

По ориентации:

  • landscape — режим по умолчанию
  • portrait — принудительный портретный режим
  • auto — автоповорот устройства

Для pygame-игр на Android используйте проверенную конфигурацию Buildozer:

requirements = python3==3.10.12,hostpython3==3.10.12,kivy==2.3.0,pyjnius==1.5.0,pygame,pymunk,spritepro
android.archs = arm64-v8a

И собирать проект лучше внутри WSL/Linux home, а не из /mnt/c/....

Если вы проверяете не опубликованный spritepro, а локальные свежие правки библиотеки, не полагайтесь на старый пакет из окружения сборки:

  • либо сначала соберите/установите актуальную локальную версию SpritePro
  • либо явно включите папку spritePro/ в проект игры перед Android build

После первой установки APK удобно сразу проверить запуск через adb logcat, чтобы быстро поймать Python traceback, если приложение не доходит до игрового экрана.

Полный рабочий flow: docs/building.md.

Что уже работает

  • desktop runtime через pygame
  • web build через pygbag
  • mobile host через Kivy
  • hybrid-режим: Kivy UI + встроенный SpritePro-виджет
  • demo, которые можно запускать через --kivy

Отдельная инструкция по сборке

Подробный гайд вынесен в отдельный файл:


💡 Примеры "Вау!" возможностей

🎨 Создайте игру за минуту

import spritePro as s

class PlatformerScene(s.Scene):
    def __init__(self):
        super().__init__()
        self.player = s.Sprite("player.png", (50, 50), (100, 300), speed=5, scene=self)
        self.platforms = [
            s.Sprite("", (200, 20), (200, 400), scene=self),
            s.Sprite("", (200, 20), (500, 350), scene=self),
        ]
        self.emitter = s.ParticleEmitter(s.ParticleConfig(
            amount=10,
            speed_range=(50, 100),
            lifetime_range=(0.5, 1.0),
        ))

        self.player.set_collision_targets(self.platforms)
        s.set_camera_follow(self.player)

    def update(self, dt):
        self.player.handle_keyboard_input()
        if self.player.velocity.length() > 0:
            self.emitter.emit(self.player.rect.center)

s.run(scene=PlatformerScene, size=(800, 600), title="Platformer", fill_color=(135, 206, 235))

Результат: Полноценная платформер-игра с физикой, камерой и эффектами!

🎵 Звук и музыка - проще некуда

# Получаем готовый AudioManager
audio = s.audio_manager

# Вариант 1: Загружаем и сохраняем для многократного использования
jump_sound = audio.load_sound("jump", "sounds/jump.mp3")
jump_sound.play()  # Автоматически применяются настройки громкости!

# Вариант 2: Прямое воспроизведение по пути (без загрузки!)
audio.play_sound("sounds/jump.mp3")  # Автоматически загрузит и воспроизведет!
audio.play_sound("sounds/coin.wav", volume=0.8)  # С кастомной громкостью

# Вариант 3: В одну строку для быстрого воспроизведения
audio.load_sound("explosion", "sounds/explosion.mp3").play()

# Музыка
audio.play_music("music/background.mp3", volume=0.5)  # Сразу с нужной громкостью!
# Или установить громкость отдельно
audio.set_music_volume(0.5)  # 50% громкости

Никаких pygame.mixer.Sound(), никаких ручных настроек - всё работает!

🎯 UI за секунды

# Кнопка с автоматической анимацией
button = s.Button(
    "", (200, 50), (400, 300),
    "Начать игру",
    on_click=lambda: print("Игра началась!")
)

# Переключатель музыки
music_toggle = s.ToggleButton(
    "", (150, 40), (100, 50),
    text_on="Музыка: ВКЛ",
    text_off="Музыка: ВЫКЛ",
    on_toggle=lambda is_on: s.audio_manager.set_music_enabled(is_on)
)

# Текст с якорем (автоматическое позиционирование!)
score_text = s.TextSprite(
    "Score: 0", 36, (255, 255, 255),
    (s.WH.x - 10, 10),
    anchor=s.Anchor.TOP_RIGHT  # Прижмется к правому краю!
)

Всё работает автоматически - наведение, клики, анимации!

⌨️ Ввод и события (как в Unity)

import pygame
import spritePro as s

class InputScene(s.Scene):
    def __init__(self):
        super().__init__()
        s.events.on("quit", self.on_quit)

    def on_quit(self, event):
        print("Quit")

    def update(self, dt):
        if s.input.was_pressed(pygame.K_SPACE):
            print("Space pressed")

s.run(scene=InputScene, size=(800, 600), title="Input")

Если нужен доступ к сырым событиям pygame — используйте s.pygame_events.

🧩 Сцены без пересоздания и перезапуск

import spritePro as s

class MainScene(s.Scene):
    def on_enter(self, context):
        pass

s.run(scene=MainScene, size=(800, 600), title="Scenes")

# Перезапуск сцены
s.restart_scene()         # текущая сцена
s.restart_scene("main")   # по имени

🎆 Частицы - это просто

# Создаем эффект взрыва
explosion = s.ParticleEmitter(s.ParticleConfig(
    amount=50,
    speed_range=(100, 300),
    angle_range=(0, 360),
    lifetime_range=(0.5, 1.5),
    gravity=s.Vector2(0, 200)
))

# Взрыв при клике
explosion.emit(mouse_pos)  # Всё! 50 частиц летят во все стороны!

3 строки кода = красивый эффект взрыва!

💾 Сохранения как в Unity

# Создаем PlayerPrefs
prefs = s.PlayerPrefs("save.json")

# Сохраняем что угодно
prefs.set_float("score", 1250.5)
prefs.set_int("level", 5)
prefs.set_string("player_name", "Hero")
prefs.set_vector2("player_pos", (400, 300))

# Загружаем
score = prefs.get_float("score", 0)
level = prefs.get_int("level", 1)
name = prefs.get_string("player_name", "Player")
pos = prefs.get_vector2("player_pos", (0, 0))

# Всё автоматически сохраняется в JSON!

Никаких ручных парсеров, никаких сложных форматов!


🎮 Что можно создать?

✅ Платформеры

  • Автоматические столкновения
  • Камера следует за игроком
  • Готовые частицы для эффектов

✅ Аркады

  • Система здоровья из коробки
  • Таймеры для событий
  • Готовые UI элементы

✅ RPG

  • Система сохранений
  • Инвентарь (через спрайты)
  • Диалоги (через TextSprite)

✅ Пазлы

  • Интерактивные элементы
  • Анимации переходов
  • Система состояний

✅ Tower Defense

  • Пути для врагов (через move_towards)
  • Система частиц для эффектов
  • UI для интерфейса

✅ Мультиплеерные игры

  • Встроенная сетевая подсистема (NetServer / NetClient, relay)
  • Синхронизация позиций, состояний, событий (ready, start, счёт)
  • Мини-курс в папке multiplayer_course/: уроки 1–10 с примерами, практикой и решениями

✅ Мобильные игры

  • Запуск той же игры через platform="kivy"
  • Экранные кнопки, touch-ввод, Kivy-host
  • Основа для Android-сборок через Kivy/Buildozer

📊 Сравнение с альтернативами

Функция pygame arcade SpritePro
Автоматическая отрисовка
Готовая камера
Физика (2D) ✅ pymunk, типы тел, коллизии
Layout (flex, сетка, круг)
Редактор сцен (JSON)
Мультиплеер (TCP, лобби)
Система частиц
AudioManager
PlayerPrefs
Якоря позиционирования
Простота использования ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐

SpritePro = pygame + физика, Layout, редактор сцен, мультиплеер и всё остальное для игры.


🎯 Ключевые преимущества

🚀 Скорость разработки

  • Создайте прототип игры за минуты, а не часы
  • Меньше кода = меньше багов
  • Больше времени на геймплей, меньше на инфраструктуру

🎨 Красота из коробки

  • Автоматические анимации кнопок
  • Плавные переходы (tweening)
  • Готовые эффекты частиц
  • Цветовые эффекты

🛠️ Мощность и гибкость

  • Полный доступ к pygame под капотом
  • Расширяемая архитектура
  • Можно использовать как pygame, так и высокоуровневые функции

📚 Отличная документация

  • Подробные примеры для каждого компонента
  • Демо-игры с исходным кодом
  • Понятные API

🎬 Демо-игры

Все с открытым исходным кодом. Полный список — DOCUMENTATION_INDEX.md → Демо.

Демо Описание
Ping Pong Игра с меню, звуком, физикой
Physics Demo Гравитация, отскок, платформы, статика/кинематика
Mobile Orb Collector Mobile-first demo: экранные кнопки, touch, Kivy
Kivy Hybrid Demo Kivy UI + встроенная игровая область SpritePro
demoGames/ Сцена из редактора: level.json, spawn_scene, get_physics, платформер. python demoGames/main.py
Fireworks Частицы
Tween Плавные анимации
Мультиплеер local_multiplayer_demo, курс multiplayer_course

Запуск из корня репозитория: python -m spritePro.demoGames.physics_demo или python demoGames/main.py.


📦 Что внутри?

🎮 Основные компоненты

  • Sprite — базовый класс с движением и визуальными эффектами
  • Button, ToggleButton — кнопки и переключатели с анимациями
  • TextSprite — текст с якорями
  • Bar — полосы прогресса (HP, опыт)

⚙️ Физика

  • pymunk — мир тел, типы DYNAMIC/STATIC/KINEMATIC, формы (PhysicsShape), гравитация, коллизии. Тело из сцены: s.get_physics(sprite). docs/physics.md

📐 Layout и UI

  • Layout — автолейаут: flex, сетка, круг, линия; контейнер — спрайт или rect. docs/layout.md
  • ScrollView — скроллируемая область (колёсико, перетаскивание)
  • Slider, TextInput, Pages — слайдеры, поля ввода, страницы

🎨 Игровые системы

  • Animation — анимации по кадрам
  • Tween — плавные переходы; Fluent API: sprite.DoMove(...).SetEase(...). docs/tween.md
  • Timer, Health — таймеры и здоровье
  • ParticleEmitter — частицы (конфиг, emit)

🌐 Мультиплеер

  • NetServer / NetClient, relay, контекст (send, poll, send_every)
  • Лобби — экран с именем, хост/клиент, порт, «В игру». docs/networking.md
  • Курс: multiplayer_course/ — 10 уроков

📱 Mobile и build

  • Kivy host — запуск game loop внутри mobile-оболочки
  • run(platform="kivy") / run_kivy(...) — full-screen режим по умолчанию
  • run_kivy_hybrid(...) / create_kivy_widget(...) — Kivy UI вокруг встроенной игровой области
  • Подробно: docs/mobile.md, docs/kivy_hybrid.md, docs/building.md

🛠️ Утилиты

  • AudioManager — звук и музыка
  • PlayerPrefs — сохранения в JSON
  • Camera — камера и слежение за объектом
  • Builder — fluent API для спрайтов и частиц

🎨 Редактор сцен

  • Sprite Editor — сцены в стиле Unity: File / GameObject / Tools / View, Hierarchy, Inspector, JSON, Text-объекты
  • В игре: spawn_scene("level.json", ...), объекты по имени, физика из сцены. docs/sprite_editor.md
  • Запуск: python -m spritePro.cli --editor или -e

📖 Документация

Главная картаDOCUMENTATION_INDEX.md: всё по полочкам (старт, основы, физика, редактор, UI, демо, порядок изучения).

Раздел Куда смотреть
Старт Установка, Первая игра, Шаблон проекта
Обзор docs/OVERVIEW.md — Layout, физика, Builder, мультиплеер кратко
Физика docs/physics.md — pymunk, типы тел, PhysicsShape, сцена из редактора; docs/physics_issues.md — нюансы
Редактор сцен docs/sprite_editor.md — редактор, spawn_scene, get_physics из сцены
Демо DOCUMENTATION_INDEX.md → Демо; сцена из редактора: demoGames/
Сеть docs/networking.md; курс: multiplayer_course/
Mobile docs/mobile.md — Kivy runtime, touch, mobile demo
Hybrid Kivy UI docs/kivy_hybrid.md — меню/кнопки Kivy + встроенная игра SpritePro
Build docs/building.md — library wheel/sdist, web, Android, packaging
Вся документация docs/README.md — навигация по docs

🎯 Примеры использования

Игра с меню, звуком и сохранениями

import spritePro as s

class MainScene(s.Scene):
    def __init__(self):
        super().__init__()

        audio = s.audio_manager
        audio.load_sound("click", "sounds/click.mp3")
        self.click_sound = audio.get_sound("click")
        audio.play_music("music/bg.mp3")

        self.prefs = s.PlayerPrefs("save.json")
        self.high_score = self.prefs.get_int("high_score", 0)
        self.score = 0

        self.start_button = s.Button(
            "", (200, 50), s.WH_C, "Начать игру",
            on_click=lambda: self.click_sound.play(),
            scene=self,
        )
        self.player = s.Sprite("player.png", (50, 50), (100, 300), speed=5, scene=self)
        s.set_camera_follow(self.player)

    def update(self, dt):
        self.player.handle_keyboard_input()
        if self.score > self.high_score:
            self.prefs.set_int("high_score", self.score)

s.run(scene=MainScene, size=(800, 600), title="My Game", fill_color=(20, 20, 30))

Всё работает вместе из коробки!


🆚 SpritePro vs Обычный pygame

❌ С pygame нужно писать:

# 100+ строк для базовой игры
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
sprites = pygame.sprite.Group()
# ... обработка событий ...
# ... ручная отрисовка ...
# ... ручное управление камерой ...
# ... ручная система слоев ...
# ... и так далее ...

✅ С SpritePro:

import spritePro as s

class MainScene(s.Scene):
    def __init__(self):
        super().__init__()
        self.player = s.Sprite("player.png", (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="Game")

В 10 раз меньше кода! 🚀


🎁 Бонусы

✨ Автоматические фичи

  • Автоматическая отрисовка - создали спрайт? Он уже рисуется!
  • Автоматическое обновление - Tween, Animation, Timer обновляются сами
  • Автоматическая камера - слежение за объектами одной строкой
  • Автоматические столкновения - физика из коробки

🎨 Готовые эффекты

  • Пульсация, мерцание, волны для кнопок
  • Плавные переходы (easing)
  • Система частиц
  • Цветовые эффекты

🛠️ Удобные утилиты

  • Якоря позиционирования (как в Unity!)
  • PlayerPrefs (как в Unity!)
  • AudioManager (централизованное управление звуком)
  • Готовые компоненты (Bar, TextSprite, Button)

🚀 Начните прямо сейчас!

pip install spritepro

Затем — Ваша первая игра выше или шаблон: python -m spritePro.cli --create.


📊 Статистика

  • В 10 раз меньше кода чем с чистым pygame
  • 🚀 В 5 раз быстрее разработка прототипов
  • 🎯 100% готовых компонентов для типичных задач
  • 📚 Полная документация с примерами
  • 🎮 30+ демо-игр с исходным кодом

🤝 Сообщество


📄 Лицензия

Открытый исходный код. Используйте свободно в своих проектах!


🎮 Начните создавать игры уже сегодня!

SpritePro - это не просто библиотека. Это ваш путь от идеи к игре!

📖 Документация🎮 Демо-игры💬 Вопросы

Создано с ❤️ для разработчиков игр

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

spritepro-3.3.1.tar.gz (347.0 kB view details)

Uploaded Source

Built Distribution

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

spritepro-3.3.1-py3-none-any.whl (402.4 kB view details)

Uploaded Python 3

File details

Details for the file spritepro-3.3.1.tar.gz.

File metadata

  • Download URL: spritepro-3.3.1.tar.gz
  • Upload date:
  • Size: 347.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spritepro-3.3.1.tar.gz
Algorithm Hash digest
SHA256 33ed247a858b1b5040c0d75ac64bbeab4e98f847e81711fbaf3b9c6aee8d0f04
MD5 1f01c91c47325694b60b7a1ffe25c6cc
BLAKE2b-256 da439cdf29094f9294a6e619c956ab088041936228e00da84d730460b8024db8

See more details on using hashes here.

Provenance

The following attestation bundles were made for spritepro-3.3.1.tar.gz:

Publisher: publish-to-pypi.yml on NeoXider/SpritePro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spritepro-3.3.1-py3-none-any.whl.

File metadata

  • Download URL: spritepro-3.3.1-py3-none-any.whl
  • Upload date:
  • Size: 402.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spritepro-3.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f713f9932076822385772030fb0f73fa5233fbb6d0e233ee48ffde31378f6b2
MD5 9b9a02d8c3ce72e66a1a98583869b5b7
BLAKE2b-256 4368a1df69d752a0842c1a2fcff229290f9c4d7de2d5e59d544fe79b0c43a1d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for spritepro-3.3.1-py3-none-any.whl:

Publisher: publish-to-pypi.yml on NeoXider/SpritePro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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