Skip to content

Commit d826f2c

Browse files
committed
v2.2.2
1 parent 3471aa9 commit d826f2c

15 files changed

Lines changed: 367 additions & 91 deletions

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@
55
Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.2.2]
9+
10+
### Added
11+
- **Документация: физика из сцены редактора** — в [docs/physics.md](docs/physics.md) добавлен раздел «Получение и настройка физики из сцены редактора»: `s.get_physics(sprite)`, `set_bounce(0)`, задание скорости, удаление тела и создание своего, границы мира. Пример кода и ссылка на demoGames.
12+
- **demoGames/** в корне репозитория — пример сцены из редактора (level.json) с получением и настройкой физики в коде (платформер); README с инструкцией запуска и описанием.
13+
14+
### Changed
15+
- Версия 2.2.2. В [docs/sprite_editor.md](docs/sprite_editor.md) и [docs/OVERVIEW.md](docs/OVERVIEW.md) добавлены упоминания `get_physics` и донастройки физики из кода. В разделе «Демо и примеры» [docs/physics.md](docs/physics.md) добавлен пункт про demoGames.
16+
17+
---
18+
819
## [2.2.0]
920

1021
### Added

DOCUMENTATION_INDEX.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@
22

33
Полный указатель всей документации проекта SpritePro.
44

5+
---
6+
7+
## 📚 Содержание
8+
9+
| Полка | Что внутри |
10+
|-------|------------|
11+
| [📋 Основные документы](#-основные-документы-проекта) | README, OVERVIEW, ROADMAP, CONTRIBUTING, GAME_IDEAS |
12+
| [🎯 Старт и основы](#-основные-компоненты) | Sprite, игровой цикл, ввод, события, сцены, debug |
13+
| [⚙️ Физика](#-игровые-системы) | [physics.md](docs/physics.md) — типы тел, PhysicsShape, сцена из редактора; [physics_issues.md](docs/physics_issues.md) |
14+
| [🎨 Редактор сцен](#-основные-компоненты) | [sprite_editor.md](docs/sprite_editor.md) — редактор, spawn_scene, get_physics |
15+
| [🖼️ UI](#-ui-компоненты) | Button, Toggle, Slider, Text, TextInput, Layout, Pages, Bar |
16+
| [🎮 Игровые системы](#-игровые-системы) | Animation, Tween, Timer, Health, Particles, Builder, Networking |
17+
| [🔧 Утилиты](#-утилиты) | Save/Load, Surface, Color effects, ReadySprites |
18+
| [🎬 Демо-игры](#-демонстрационные-игры) | Список всех демо + [demoGames/](demoGames/README.md) (сцена из редактора) |
19+
| [🔍 Навигация](#-навигация-по-типам-документации) | По уровню, по категориям, порядок изучения |
20+
| [🔄 Обновления](#-обновления-документации) | Последние изменения в документации |
21+
22+
---
23+
524
## 📋 Основные документы проекта
625

726
### [README.md](README.md)
@@ -297,6 +316,7 @@
297316
- [Drag & Drop Demo](spritePro/demoGames/drag_drop_demo.py) - Перетаскивание
298317
- [Debug Overlay Demo](spritePro/demoGames/debug_overlay_demo.py) - Отладочная сетка и логи
299318
- [Physics Demo](spritePro/demoGames/physics_demo.py) - Физика: гравитация, отскок, платформы, статика и кинематика
319+
- [demoGames (сцена из редактора)](demoGames/) - Сцена из level.json: spawn_scene, s.get_physics(sprite), настройка отскока и скорости в коде (платформер). Запуск: `python demoGames/main.py` из корня репозитория. См. [demoGames/README.md](demoGames/README.md).
300320
- [Hoop Bounce Demo](spritePro/demoGames/hoop_bounce_demo.py) - Шарик в обруче: отскок без потери силы, смена цвета
301321
- [Object Pool Demo](spritePro/demoGames/object_pool_demo.py) - Пул объектов для переиспользования спрайтов
302322
- [Particle Pool Demo](spritePro/demoGames/particle_pool_demo.py) - Пул частиц (ParticleEmitter с use_pool=True)
@@ -361,12 +381,14 @@
361381
5. [Простые демо](spritePro/demoGames/) - Практические примеры
362382

363383
### Для разработки игр
364-
1. [docs/sprite.md](docs/sprite.md) - Спрайты и игровые объекты
365-
2. [docs/animation.md](docs/animation.md) - Анимации
366-
3. [docs/tween.md](docs/tween.md) - Плавные переходы (в т.ч. Fluent API)
367-
4. [docs/timer.md](docs/timer.md) - Игровое время
368-
5. [docs/health.md](docs/health.md) - Игровые системы
369-
6. [docs/save_load.md](docs/save_load.md) - Сохранения
384+
1. [docs/sprite.md](docs/sprite.md) — Спрайты и игровые объекты
385+
2. [docs/physics.md](docs/physics.md) — Физика (pymunk), типы тел, сцена из редактора
386+
3. [docs/sprite_editor.md](docs/sprite_editor.md) — Редактор сцен, spawn_scene, get_physics
387+
4. [docs/animation.md](docs/animation.md) — Анимации
388+
5. [docs/tween.md](docs/tween.md) — Плавные переходы (Fluent API)
389+
6. [docs/timer.md](docs/timer.md) — Игровое время
390+
7. [docs/health.md](docs/health.md) — Здоровье
391+
8. [docs/save_load.md](docs/save_load.md) — Сохранения
370392

371393
### Для продвинутых разработчиков
372394
1. [docs/layout.md](docs/layout.md) - Автолейауты
@@ -411,5 +433,5 @@
411433

412434
---
413435

414-
**Совет**: Используйте поиск по файлам (Ctrl+F) для быстрого поиска нужной информации в документации! 🔍
436+
**Совет:** В начале документа — [содержание по полочкам](#-содержание-по-полочкам): все разделы сведены в одну таблицу для быстрого перехода. Используйте Ctrl+F для поиска по странице.
415437

README.md

Lines changed: 36 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,13 @@ python -m spritePro.cli -e
5252

5353
## 📑 Содержание
5454

55-
- [⚡ Почему SpritePro?](#-почему-spritepro)
56-
- [🌟 Что делает SpritePro особенным?](#-что-делает-spritepro-особенным)
57-
- [🚀 Быстрый старт](#-быстрый-старт-30-секунд)
58-
- [Установка](#установка)
59-
- [Ваша первая игра](#ваша-первая-игра-5-строк)
60-
- [💡 Примеры "Вау!" возможностей](#-примеры-вау-возможностей)
61-
- [🎮 Что можно создать?](#-что-можно-создать)
62-
- [📊 Сравнение с альтернативами](#-сравнение-с-альтернативами)
63-
- [🎯 Ключевые преимущества](#-ключевые-преимущества)
64-
- [🎬 Демо-игры](#-демо-игры)
65-
- [📦 Что внутри?](#-что-внутри)
66-
- [📖 Документация](#-документация)
67-
- [🎯 Примеры использования](#-примеры-использования)
68-
- [🆚 SpritePro vs Обычный pygame](#-spritepro-vs-обычный-pygame)
69-
- [🎁 Бонусы](#-бонусы)
70-
- [🚀 Начните прямо сейчас!](#-начните-прямо-сейчас)
71-
- [📊 Статистика](#-статистика)
72-
- [🤝 Сообщество](#-сообщество)
73-
- [📄 Лицензия](#-лицензия)
55+
- [⚡ Почему SpritePro?](#-почему-spritepro) · [🌟 Особенности](#-что-делает-spritepro-особенным)
56+
- [🚀 Быстрый старт](#-быстрый-старт-30-секунд) — установка, первая игра, шаблон `--create`
57+
- [💡 Примеры возможностей](#-примеры-вау-возможностей) · [🎮 Что можно создать?](#-что-можно-создать)
58+
- [📖 Документация](#-документация)**главная карта** и ссылки по разделам
59+
- [🎬 Демо-игры](#-демо-игры) · [📦 Что внутри?](#-что-внутри)
60+
- [🎯 Ключевые преимущества](#-ключевые-преимущества) · [🆚 SpritePro vs pygame](#-spritepro-vs-обычный-pygame)
61+
- [🚀 Начните прямо сейчас!](#-начните-прямо-сейчас) · [🤝 Сообщество](#-сообщество) · [📄 Лицензия](#-лицензия)
7462

7563
---
7664

@@ -467,20 +455,18 @@ pos = prefs.get_vector2("player_pos", (0, 0))
467455
468456
## 🎬 Демо-игры
469457
470-
**Увидьте SpritePro в действии!** Все демо с открытым исходным кодом:
458+
Все с открытым исходным кодом. Полный список — [DOCUMENTATION_INDEX.md → Демо](DOCUMENTATION_INDEX.md#-демонстрационные-игры).
471459
472-
- 🏓 **[Ping Pong](spritePro/demoGames/ping_pong.py)** - Полноценная игра с меню, звуком и UI
473-
- 🎆 **[Fireworks](spritePro/demoGames/fireworks_demo.py)** - Красивые эффекты частиц
474-
- 🎨 **[Tween Demo](spritePro/demoGames/tweenDemo.py)** - Плавные анимации
475-
- 🎮 **[Among Us Demo](spritePro/demoGames/amongus.py)** - Платформер с взаимодействиями
476-
- 💥 **[Particle Template Test](spritePro/demoGames/particle_template_test.py)** - Интерактивные частицы
477-
- 🌐 **Мультиплеер** - [local_multiplayer_demo](spritePro/demoGames/local_multiplayer_demo.py), [камень/ножницы/бумага](spritePro/demoGames/events_rps_demo.py); полный курс — [multiplayer_course](multiplayer_course/README.md)
460+
| Демо | Описание |
461+
|------|----------|
462+
| [Ping Pong](spritePro/demoGames/ping_pong.py) | Игра с меню, звуком, физикой |
463+
| [Physics Demo](spritePro/demoGames/physics_demo.py) | Гравитация, отскок, платформы, статика/кинематика |
464+
| [demoGames/](demoGames/README.md) | **Сцена из редактора**: level.json, spawn_scene, get_physics, платформер. `python demoGames/main.py` |
465+
| [Fireworks](spritePro/demoGames/fireworks_demo.py) | Частицы |
466+
| [Tween](spritePro/demoGames/tweenDemo.py) | Плавные анимации |
467+
| Мультиплеер | [local_multiplayer_demo](spritePro/demoGames/local_multiplayer_demo.py), курс [multiplayer_course](multiplayer_course/README.md) |
478468
479-
**Запустите любую демо-игру и увидьте возможности!**
480-
481-
```bash
482-
python spritePro/demoGames/ping_pong.py
483-
```
469+
Запуск из корня репозитория: `python -m spritePro.demoGames.physics_demo` или `python demoGames/main.py`.
484470
485471
---
486472
@@ -494,11 +480,12 @@ python spritePro/demoGames/ping_pong.py
494480
- **Bar** - Полосы прогресса (HP, опыт и т.д.)
495481
496482
### 🎨 Игровые системы
497-
- **Animation** - Система анимаций
498-
- **Tween** - Плавные переходы (easing); **Fluent API**: `sprite.DoMove(...).SetEase(Ease.OutQuad)` — см. [Tween](docs/tween.md#fluent-api-do-твины) и [Fluent Tween Demo](spritePro/demoGames/fluent_tween_demo.py)
499-
- **Timer** - Таймеры для событий
500-
- **Health** - Система здоровья
501-
- **ParticleEmitter** - Генератор частиц
483+
- **Physics (pymunk)** — мир тел, DYNAMIC/STATIC/KINEMATIC, PhysicsShape, гравитация, коллизии, `s.get_physics(sprite)` из сцены. Подробно: [docs/physics.md](docs/physics.md).
484+
- **Animation** — система анимаций
485+
- **Tween** — плавные переходы; Fluent API: `sprite.DoMove(...).SetEase(Ease.OutQuad)`. [docs/tween.md](docs/tween.md)
486+
- **Timer** — таймеры для событий
487+
- **Health** — система здоровья
488+
- **ParticleEmitter** — генератор частиц
502489
503490
### 🛠️ Утилиты
504491
- **AudioManager** - Управление звуком и музыкой
@@ -520,25 +507,17 @@ python spritePro/demoGames/ping_pong.py
520507
521508
## 📖 Документация
522509
523-
### 🚀 Быстрый старт
524-
- [Установка и настройка](#-быстрый-старт-30-секунд)
525-
- [Базовый пример](#ваша-первая-игра-5-строк)
526-
- [Быстрый старт 2.0](#-быстрый-старт-20-шаблон-проекта)
527-
528-
### 📚 Индексы
529-
- [📖 Индекс документации](DOCUMENTATION_INDEX.md) - Полный список модулей
530-
- [📘 Документация папки docs](docs/README.md) - Навигация по разделам
531-
- [🌐 Сетевой мультиплеер](docs/networking.md) — Запуск, лобби (подробная инструкция), базовые примеры
532-
- [🎓 Мини-курс по мультиплеерным играм](multiplayer_course/README.md) - 10 уроков: от обмена сообщениями до готовой сетевой мини-игры
533-
534-
### 🧩 Полный список документации
535-
- Основы: [Game Loop](docs/game_loop.md) • [Input](docs/input.md) • [Debug](docs/debug.md) • [Camera & Particles](docs/camera_and_particles.md)
536-
- Спрайты и графика: [Sprite](docs/sprite.md) • [Surface](docs/surface.md) • [Text](docs/text.md) • [Text FPS](docs/text_fps.md) • [Color Effects](docs/color_effects.md) • [ReadySprites](docs/readySprites.md)
537-
- UI: [Button](docs/button.md) • [Toggle Button](docs/toggle_button.md) • [Bar](docs/bar.md) • [Bar Background](docs/bar_background.md) • [Pages](docs/pages.md) • [Layout](docs/layout.md) • ScrollView (в [layout.md](docs/layout.md)) • [Готовые сцены](docs/README.md#готовые-сцены-readyscenes) (ChatScene)
538-
- Компоненты: [Animation](docs/animation.md) • [Tween](docs/tween.md) • [Tween Presets](docs/tween_presets.md) • [Timer](docs/timer.md) • [Health](docs/health.md) • [Mouse Interactor](docs/mouse_interactor.md) • [Draggable Sprite](docs/draggable_sprite.md)
539-
- Эффекты и частицы: [Particles](docs/particles.md)
540-
- Аудио: [Audio](docs/audio.md)
541-
- Сохранения и утилиты: [Save/Load](docs/save_load.md)
510+
**Главная карта** — [**DOCUMENTATION_INDEX.md**](DOCUMENTATION_INDEX.md): всё по полочкам (старт, основы, физика, редактор, UI, демо, порядок изучения).
511+
512+
| Раздел | Куда смотреть |
513+
|--------|----------------|
514+
| **Старт** | [Установка](#установка), [Первая игра](#ваша-первая-игра-5-строк), [Шаблон проекта](#-быстрый-старт-20-шаблон-проекта) |
515+
| **Обзор** | [docs/OVERVIEW.md](docs/OVERVIEW.md) — Layout, физика, Builder, мультиплеер кратко |
516+
| **Физика** | [docs/physics.md](docs/physics.md) — pymunk, типы тел, PhysicsShape, сцена из редактора; [docs/physics_issues.md](docs/physics_issues.md) — нюансы |
517+
| **Редактор сцен** | [docs/sprite_editor.md](docs/sprite_editor.md) — редактор, spawn_scene, get_physics из сцены |
518+
| **Демо** | [DOCUMENTATION_INDEX.md → Демо](DOCUMENTATION_INDEX.md#-демонстрационные-игры); сцена из редактора: [demoGames/](demoGames/README.md) |
519+
| **Сеть** | [docs/networking.md](docs/networking.md); курс: [multiplayer_course/](multiplayer_course/README.md) |
520+
| **Вся документация** | [docs/README.md](docs/README.md) — навигация по docs |
542521
543522
---
544523
@@ -645,27 +624,11 @@ while True:
645624
646625
## 🚀 Начните прямо сейчас!
647626
648-
### 1. Установите
649627
```bash
650-
pip install pygame
651-
git clone https://github.com/NeoXider/SpritePro.git
652-
```
653-
654-
### 2. Скопируйте папку `spritePro` в ваш проект
655-
656-
### 3. Создайте игру!
657-
```python
658-
import spritePro as s
659-
660-
s.get_screen((800, 600), "My Game")
661-
player = s.Sprite("", (50, 50), s.WH_C, speed=5)
662-
663-
while True:
664-
s.update()
665-
player.handle_keyboard_input()
628+
pip install spritepro
666629
```
667630
668-
**Готово!** У вас уже есть игра! 🎉
631+
Затем — [Ваша первая игра (5 строк)](#ваша-первая-игра-5-строк) выше или шаблон: `python -m spritePro.cli --create`.
669632
670633
---
671634

demoGames/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# demoGames — сцена из редактора и физика
2+
3+
Пример запуска игры, сцена которой сделана в **Sprite Editor** (level.json). Показывает, как получать и настраивать физику объектов из сцены в коде.
4+
5+
## Запуск
6+
7+
Из **корня репозитория** SpritePro:
8+
9+
```bash
10+
python demoGames/main.py
11+
```
12+
13+
Либо установить пакет в режиме разработки и запускать из любой папки:
14+
15+
```bash
16+
pip install -e .
17+
python -c "import spritePro; print(spritePro.__file__)"
18+
python demoGames/main.py
19+
```
20+
21+
## Что внутри
22+
23+
- **main.py** — точка входа: экран, сцена `MainScene`, цикл `s.update()`.
24+
- **scenes/main_scene.py** — загрузка сцены через `spawn_scene("scenes/level.json", scene=self)`, получение игрока по имени, настройка физики в коде.
25+
- **scenes/level.json** — сцена, собранная в редакторе (объект `player` с типом физики Dynamic, платформы `rect*` и т.д.).
26+
- **config.py** — размер окна, FPS, скорость и высота прыжка.
27+
28+
## Физика из сцены редактора
29+
30+
1. В редакторе у объекта (например, player) выставляется **Physics: Dynamic** (и при необходимости Mass, Friction, Bounce).
31+
2. При загрузке `spawn_scene` таким объектам автоматически создаётся тело и они добавляются в `s.physics`.
32+
3. В коде тело получаем через **`s.get_physics(sprite)`** и донастраиваем:
33+
- `body.set_bounce(0)` — без отскока при приземлении (как в Geometry Dash);
34+
- `body.velocity.x = config.SPEED` — горизонтальная скорость;
35+
- в `update()` по Space: `body.velocity.y = -config.JUMP` — прыжок.
36+
37+
Подробнее: [docs/physics.md](../docs/physics.md) (раздел «Получение и настройка физики из сцены редактора»).

demoGames/config.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
WINDOW_SIZE = (800, 600)
2+
FPS = 60
3+
4+
SPEED = 200
5+
JUMP = 400

demoGames/main.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import sys
2+
from pathlib import Path
3+
4+
# Корень репозитория — чтобы находился пакет spritePro при запуске из demoGames/
5+
_root = Path(__file__).resolve().parent.parent
6+
if str(_root) not in sys.path:
7+
sys.path.insert(0, str(_root))
8+
9+
import spritePro as s
10+
11+
import config
12+
from scenes.main_scene import MainScene
13+
14+
15+
def main():
16+
s.get_screen(config.WINDOW_SIZE, "My SpritePro Game")
17+
s.enable_debug(True)
18+
s.set_debug_hud_enabled(show_camera=False)
19+
s.set_debug_camera_input(3)
20+
s.debug_log_info("Game started")
21+
s.set_scene(MainScene())
22+
23+
while True:
24+
s.update(config.FPS, fill_color=(20, 20, 30))
25+
26+
27+
if __name__ == "__main__":
28+
main()

demoGames/scenes/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)