Мощный игровой фреймворк, который превращает создание 2D игр из сложной задачи в удовольствие!
SpritePro — это высокоуровневая библиотека для создания 2D игр на Python, построенная на базе Pygame, которая автоматизирует рутинные задачи разработки и предоставляет готовые инструменты для быстрого создания игр.
- ⚡ Почему SpritePro?
- 🌟 Что делает SpritePro особенным?
- 🚀 Быстрый старт
- 💡 Примеры "Вау!" возможностей
- 🎮 Что можно создать?
- 📊 Сравнение с альтернативами
- 🎯 Ключевые преимущества
- 🎬 Демо-игры
- 📦 Что внутри?
- 📖 Документация
- 🎯 Примеры использования
- 🆚 SpritePro vs Обычный pygame
- 🎁 Бонусы
- 🚀 Начните прямо сейчас!
- 📊 Статистика
- 🤝 Сообщество
- 📄 Лицензия
# С pygame нужно писать ВСЁ самому:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
sprite = pygame.sprite.Sprite()
# ... 50+ строк кода для базовой игры ...# Всё работает из коробки!
import spritePro as s
s.get_screen((800, 600), "My Awesome Game")
player = s.Sprite("player.png", (50, 50), s.WH_C, speed=5)
while True:
s.update(fill_color=(20, 20, 30))
player.handle_keyboard_input() # Готово! Движение работает!Это всё! Игра готова за 5 строк кода! 🎉
| Обычный pygame | SpritePro |
|---|---|
| ❌ Ручная отрисовка каждого спрайта | ✅ Автоматическая отрисовка всех спрайтов |
| ❌ Ручное управление камерой | ✅ Камера работает автоматически |
| ❌ Ручная обработка событий | ✅ Встроенная обработка ввода |
| ❌ Ручное управление слоями | ✅ Автоматическая система слоев |
| ❌ Ручное управление звуком | ✅ Готовый AudioManager |
| ❌ Ручная система сохранений | ✅ PlayerPrefs из коробки |
| ❌ Ручная система частиц | ✅ Простой ParticleEmitter |
- ✅ Автоматическая отрисовка - просто создайте спрайт, он сам отрисуется
- ✅ Умная камера - слежение за объектами одной строкой
- ✅ Простая физика - столкновения, гравитация, движение из коробки
- ✅ Система частиц - красивые эффекты за 3 строки кода
- ✅ UI компоненты - кнопки, переключатели, текст готовы к использованию
- ✅ Анимации и твининг - плавные переходы без головной боли
- ✅ Аудио менеджер - управление звуком и музыкой централизованно
- ✅ Система сохранений - PlayerPrefs как в Unity!
- ✅ Якоря позиционирования - размещайте объекты точно где нужно
Это самый простой и быстрый способ начать работу со SpritePro.
pip install spriteproВсе зависимости, включая pygame, будут установлены автоматически.
Чтобы обновить SpritePro до последней версии, используйте команду:
pip install --upgrade spriteproЭтот способ подходит, если вы хотите внести свой вклад в разработку или использовать самую последнюю, еще не опубликованную версию.
-
Клонируйте репозиторий:
git clone https://github.com/NeoXider/SpritePro.git
-
Перейдите в папку проекта:
cd SpritePro -
(Опционально) Установите в режиме редактирования:
pip install -e .Это позволит вам изменять код библиотеки и сразу видеть изменения в своих проектах.
import spritePro as s
s.get_screen((800, 600), "My Game")
player = s.Sprite("", (50, 50), s.WH_C, speed=5)
while True:
s.update(fill_color=(20, 20, 30))
player.handle_keyboard_input() # Готово! Игра работает!Вот и всё! У вас уже есть игра с управлением, отрисовкой и игровым циклом! 🎮
import spritePro as s
screen = s.get_screen((800, 600), "Platformer")
# Игрок с автоматическим движением
player = s.Sprite("player.png", (50, 50), (100, 300), speed=5)
# Платформы
platforms = [
s.Sprite("", (200, 20), (200, 400)),
s.Sprite("", (200, 20), (500, 350)),
]
# Камера следует за игроком
s.set_camera_follow(player)
# Частицы при движении
emitter = s.ParticleEmitter(s.ParticleConfig(
amount=10,
speed_range=(50, 100),
lifetime_range=(0.5, 1.0)
))
# Настраиваем столкновения один раз (не в цикле!)
player.set_collision_targets(platforms)
while True:
s.update(fill_color=(135, 206, 235)) # Небо
player.handle_keyboard_input() # Столкновения обрабатываются автоматически!
# Частицы
if player.velocity.length() > 0:
emitter.emit(player.rect.center)Результат: Полноценная платформер-игра с физикой, камерой и эффектами!
# Получаем готовый 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(), никаких ручных настроек - всё работает!
# Кнопка с автоматической анимацией
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 # Прижмется к правому краю!
)Всё работает автоматически - наведение, клики, анимации!
# Создаем эффект взрыва
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 строки кода = красивый эффект взрыва!
# Создаем 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 элементы
- Система сохранений
- Инвентарь (через спрайты)
- Диалоги (через TextSprite)
- Интерактивные элементы
- Анимации переходов
- Система состояний
- Пути для врагов (через move_towards)
- Система частиц для эффектов
- UI для интерфейса
| Функция | pygame | arcade | SpritePro |
|---|---|---|---|
| Автоматическая отрисовка | ❌ | ✅ | ✅ |
| Готовая камера | ❌ | ✅ | ✅ |
| Система частиц | ❌ | ❌ | ✅ |
| AudioManager | ❌ | ❌ | ✅ |
| PlayerPrefs | ❌ | ❌ | ✅ |
| Якоря позиционирования | ❌ | ❌ | ✅ |
| Автоматические столкновения | ❌ | ❌ | ✅ |
| Простота использования | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
SpritePro = pygame + всё необходимое для игры!
- Создайте прототип игры за минуты, а не часы
- Меньше кода = меньше багов
- Больше времени на геймплей, меньше на инфраструктуру
- Автоматические анимации кнопок
- Плавные переходы (tweening)
- Готовые эффекты частиц
- Цветовые эффекты
- Полный доступ к pygame под капотом
- Расширяемая архитектура
- Можно использовать как pygame, так и высокоуровневые функции
- Подробные примеры для каждого компонента
- Демо-игры с исходным кодом
- Понятные API
Увидьте SpritePro в действии! Все демо с открытым исходным кодом:
- 🏓 Ping Pong - Полноценная игра с меню, звуком и UI
- 🎆 Fireworks - Красивые эффекты частиц
- 🎨 Tween Demo - Плавные анимации
- 🎮 Among Us Demo - Платформер с взаимодействиями
- 💥 Particle Template Test - Интерактивные частицы
Запустите любую демо-игру и увидьте возможности!
python spritePro/demoGames/ping_pong.py- Sprite - Базовый класс с физикой, движением и визуальными эффектами
- Button - Готовые кнопки с анимациями
- ToggleButton - Переключатели
- TextSprite - Текст с якорями позиционирования
- Bar - Полосы прогресса (HP, опыт и т.д.)
- Animation - Система анимаций
- Tween - Плавные переходы (easing функции)
- Timer - Таймеры для событий
- Health - Система здоровья
- ParticleEmitter - Генератор частиц
- AudioManager - Управление звуком и музыкой
- PlayerPrefs - Система сохранений
- Camera - Умная камера с автоматическим слежением
- Color Effects - Динамические цветовые эффекты
- 📖 Индекс документации - Все модули и компоненты
- 🎮 Sprite - Базовый класс спрайта
- 🎨 UI компоненты - Кнопки, переключатели, текст
- 🎬 Анимации - Система анимаций
- ✨ Tweening - Плавные переходы
- 💥 Частицы - Система частиц
- 🎵 Аудио - AudioManager
- 💾 Сохранения - PlayerPrefs
- 📊 Полосы прогресса - Bar компоненты
import spritePro as s
screen = s.get_screen((800, 600), "My Game")
# Аудио
audio = s.audio_manager
audio.load_sound("click", "sounds/click.mp3")
click_sound = audio.get_sound("click")
audio.play_music("music/bg.mp3")
# Сохранения
prefs = s.PlayerPrefs("save.json")
high_score = prefs.get_int("high_score", 0)
# UI
start_button = s.Button(
"", (200, 50), s.WH_C,
"Начать игру",
on_click=lambda: click_sound.play()
)
# Игрок
player = s.Sprite("player.png", (50, 50), (100, 300), speed=5)
# Камера
s.set_camera_follow(player)
while True:
s.update(fill_color=(20, 20, 30))
player.handle_keyboard_input()
# Сохраняем рекорд
if score > high_score:
prefs.set_int("high_score", score)Всё работает вместе из коробки!
# 100+ строк для базовой игры
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
sprites = pygame.sprite.Group()
# ... обработка событий ...
# ... ручная отрисовка ...
# ... ручное управление камерой ...
# ... ручная система слоев ...
# ... и так далее ...# 10 строк для той же игры!
import spritePro as s
s.get_screen((800, 600), "Game")
player = s.Sprite("player.png", (50, 50), s.WH_C, speed=5)
while True:
s.update()
player.handle_keyboard_input()В 10 раз меньше кода! 🚀
- Автоматическая отрисовка - создали спрайт? Он уже рисуется!
- Автоматическое обновление - Tween, Animation, Timer обновляются сами
- Автоматическая камера - слежение за объектами одной строкой
- Автоматические столкновения - физика из коробки
- Пульсация, мерцание, волны для кнопок
- Плавные переходы (easing)
- Система частиц
- Цветовые эффекты
- Якоря позиционирования (как в Unity!)
- PlayerPrefs (как в Unity!)
- AudioManager (централизованное управление звуком)
- Готовые компоненты (Bar, TextSprite, Button)
pip install pygame
git clone https://github.com/NeoXider/SpritePro.gitimport spritePro as s
s.get_screen((800, 600), "My Game")
player = s.Sprite("", (50, 50), s.WH_C, speed=5)
while True:
s.update()
player.handle_keyboard_input()Готово! У вас уже есть игра! 🎉
- ⚡ В 10 раз меньше кода чем с чистым pygame
- 🚀 В 5 раз быстрее разработка прототипов
- 🎯 100% готовых компонентов для типичных задач
- 📚 Полная документация с примерами
- 🎮 15+ демо-игр с исходным кодом
- 💬 Вопросы? Откройте Issue
- 🐛 Нашли баг? Сообщите
- 💡 Есть идея? Предложите
- ⭐ Понравилось? Поставьте звезду!
Открытый исходный код. Используйте свободно в своих проектах!
SpritePro - это не просто библиотека. Это ваш путь от идеи к игре!
📖 Документация • 🎮 Демо-игры • 💬 Вопросы
Создано с ❤️ для разработчиков игр
