Skip to content

Commit 6bf3479

Browse files
v1.4.0
1 parent 945fa9a commit 6bf3479

25 files changed

Lines changed: 3921 additions & 89 deletions

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,40 @@
1111
- Продвинутые UI компоненты
1212
- Мобильная поддержка
1313

14+
## [1.4.0] - 2025-02-12
15+
16+
### Added
17+
- **Fluent Tween API (Do-твины)**: удобный цепочечный API в стиле DOTween.
18+
- Методы на **Sprite**: `DoMove`, `DoMoveBy`, `DoScale`, `DoScaleBy`, `DoRotate`, `DoRotateBy`, `DoColor`, `DoAlpha`, `DoFadeIn`, `DoFadeOut`, `DoSize`, `DoPunchScale`, `DoShakePosition`, `DoShakeRotation`, `DoBezier` — по умолчанию `Ease.OutQuad`, автоудаление по завершении.
19+
- **TweenHandle**: цепочка `SetEase`, `SetDelay`, `OnComplete`, `SetLoops`, `SetYoyo`, `Kill(complete=False|True)`.
20+
- **Ease**: enum с именами In/Out/InOut по кривым (OutQuad, InCubic, InOutSine и др.), альтернатива `EasingType`.
21+
- Зацикливание: режим reset по умолчанию, `SetYoyo(True)` для движения туда-обратно; при завершении (если не loop) твин сам снимается с обновления.
22+
- **Tween**: параметр `auto_remove_on_complete`; `stop(apply_end, call_on_complete)` для `Kill(complete=True)`; `set_easing()`; в пресетах — параметр `auto_remove_on_complete`.
23+
- **Демо**: `spritePro/demoGames/fluent_tween_demo.py` — примеры Do*, цепочки, циклы 8/9/0, Kill.
24+
- **Документация**: раздел «Fluent API (Do-твины)» в [docs/tween.md](docs/tween.md), таблицы методов Do* и TweenHandle, обновлены README и docs/README.md.
25+
- **Крестики-нолики (мультиплеер)**: анимации на Fluent Tween — появление символа в ячейке (DoPunchScale), пульс по выигрышной линии, отдача кнопки «Новая игра».
26+
27+
### Changed
28+
- Версия библиотеки 1.4.0 (минор).
29+
30+
## [1.3.4]
31+
32+
### Added
33+
- **Модуль layout** (`spritePro.layout`): автолейаут для дочерних спрайтов.
34+
- **Layout** наследует **Sprite**: лейаут можно перемещать; при `container=None` лейаут сам является контейнером (параметры size, pos, scene), дети при add/remove привязываются через set_parent.
35+
- **LayoutDirection**: FLEX_ROW, FLEX_COLUMN, HORIZONTAL, VERTICAL, GRID, CIRCLE, LINE.
36+
- **LayoutAlignMain** / **LayoutAlignCross**: выравнивание (START, CENTER, END, SPACE_BETWEEN, SPACE_AROUND, SPACE_EVENLY).
37+
- **GridFlow**: ROW, COLUMN для сетки.
38+
- Контейнер: Sprite, (x, y, w, h) или None (лейаут-спрайт как контейнер). Список расставляемых детей — **arranged_children**.
39+
- Удобные функции: layout_flex_row, layout_flex_column, layout_horizontal, layout_vertical, layout_grid, layout_circle, layout_line.
40+
- Авто-обновление при add/remove детей; ручной refresh/apply при смене параметров или типа.
41+
- Для CIRCLE: rotate_children и offset_angle. gap и padding как число или кортеж.
42+
- **docs/layout.md**: описание API, Layout как Sprite, container=None, arranged_children, use_local, пример «лейаут как перемещаемый блок».
43+
- **spritePro/demoGames/layout_demo.py**: демо всех типов лейаута (FLEX_ROW, FLEX_COLUMN, GRID, HORIZONTAL, VERTICAL, CIRCLE, LINE).
44+
45+
### Changed
46+
- Версия библиотеки 1.3.4 (минор).
47+
1448
## [1.3.3]
1549

1650
### Added

DOCUMENTATION_INDEX.md

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
- Примеры использования
1212
- Ссылки на всю документацию
1313

14+
### [docs/OVERVIEW.md](docs/OVERVIEW.md) 📋
15+
**Краткий обзор SpritePro**
16+
- Layout, мультиплеер, основные подсистемы
17+
- Таблицы типов лейаутов, API
18+
- Полезные пути и команды запуска демо
19+
1420
### [ROADMAP.md](ROADMAP.md) 🗺️
1521
**План развития проекта**
1622
- Краткосрочные цели (v1.1 - v1.3)
@@ -100,6 +106,11 @@
100106
- Страницы и менеджер страниц
101107
- Автовключение/выключение спрайтов
102108

109+
#### [docs/layout.md](docs/layout.md)
110+
**Layout**
111+
- Автолейаут: flex, сетка, окружность, линия
112+
- Контейнер — спрайт, rect или сам лейаут
113+
103114
### Игровые системы
104115

105116
#### [docs/animation.md](docs/animation.md)
@@ -110,14 +121,14 @@
110121

111122
#### [docs/tween.md](docs/tween.md)
112123
**Плавные переходы**
113-
- Easing функции
124+
- Easing функции (EasingType, Ease)
114125
- Анимация свойств
115126
- Цепочки анимаций
116127

117128
#### [docs/tween_presets.md](docs/tween_presets.md)
118-
**Готовые твины**
129+
**Готовые твины и Fluent API**
119130
- Позиция, масштаб, поворот, цвет, прозрачность
120-
- Быстрые пресеты для спрайтов
131+
- **Fluent API** на Sprite: DoMove, DoScale, DoRotateBy, DoColor, DoFadeOut/In, SetEase, SetDelay, OnComplete, SetLoops, SetYoyo, Kill
121132

122133
#### [docs/networking.md](docs/networking.md)
123134
**Networking**
@@ -153,6 +164,12 @@
153164
- Слои отрисовки (sorting_order)
154165
- Частицы на основе изображений, поворот и масштаб
155166

167+
#### [docs/camera_and_particles.md](docs/camera_and_particles.md)
168+
**Камера и частицы**
169+
- Управление камерой и режим слежения
170+
- Система частиц и их конфигурация
171+
- Примеры использования
172+
156173
#### [docs/bar.md](docs/bar.md)
157174
**Прогресс-бары**
158175
- Unity-style fillAmount функциональность
@@ -208,24 +225,16 @@
208225
- Настройка внешнего вида
209226
- Мониторинг производительности
210227

211-
#### [docs/bar.md](docs/bar.md)
212-
**Прогресс-бары**
213-
- Unity-style fillAmount функциональность
214-
- 4 направления заполнения
215-
- Плавная анимация
216-
- Готовые к использованию компоненты
217-
218-
#### [docs/bar_background.md](docs/bar_background.md)
219-
**Прогресс-бары с фоном**
220-
- Отдельные изображения для фона и заполнения
221-
- Фоновое изображение всегда видимо
222-
- Заполнение обрезается по направлению
223-
- Готовые к использованию компоненты
224-
225228
## 🎮 Демонстрационные игры
226229

227-
230+
- [Layout Demo](spritePro/demoGames/layout_demo.py) - Все типы лейаутов (flex, grid, circle, line)
231+
- [Menu/Shop Demo](spritePro/demoGames/menu_shop_demo.py) - Меню и инвентарь на Layout
232+
- [Fluent Tween Demo](spritePro/demoGames/fluent_tween_demo.py) - Fluent API: DoMove, DoScale, SetEase, SetLoops, OnComplete, Kill
233+
- [Tween Demo](spritePro/demoGames/tweenDemo.py) - Базовые твины
234+
- [Tween Presets Demo](spritePro/demoGames/tween_presets_demo.py) - Готовые пресеты твинов
228235
- [FPS Camera Demo](spritePro/demoGames/fps_camera_demo/fps_camera_demo.py) - Камера и FPS
236+
- [Local Multiplayer Demo](spritePro/demoGames/local_multiplayer_demo.py) - Сетевой мультиплеер
237+
- [TicTacToe Multiplayer](multiplayer_course/tictactoe_example/example_tictactoe_multiplayer.py) - Крестики-нолики по сети
229238
- [Save/Load Demo](spritePro/demoGames/save_load_demo.py) - Система сохранений
230239
- [Sorting Order Demo](spritePro/demoGames/sorting_order_demo.py) - Порядок отрисовки (слои)
231240
- [Particles Images Demo](spritePro/demoGames/particles_images_demo.py) - Частицы из изображений (c.png, platforma.png)
@@ -257,19 +266,21 @@
257266
- [docs/surface.md](docs/surface.md)
258267
- [docs/color_effects.md](docs/color_effects.md)
259268
- [docs/animation.md](docs/animation.md)
269+
- [docs/tween.md](docs/tween.md) — плавные переходы, Fluent API (DoMove, DoScale, ...)
260270

261271

262272

263273
#### 🖱️ Пользовательский интерфейс
264274
- [docs/button.md](docs/button.md)
265275
- [docs/toggle_button.md](docs/toggle_button.md)
266276
- [docs/text.md](docs/text.md)
277+
- [docs/layout.md](docs/layout.md)
267278
- [docs/mouse_interactor.md](docs/mouse_interactor.md)
268279
- [docs/draggable_sprite.md](docs/draggable_sprite.md)
269280

270281
#### 🔧 Утилиты и инструменты
271282
- [docs/save_load.md](docs/save_load.md)
272-
- [docs/tween.md](docs/tween.md)
283+
- [docs/tween.md](docs/tween.md) — Tween, TweenManager, Fluent API
273284
- [docs/text_fps.md](docs/text_fps.md)
274285
- [docs/game_loop.md](docs/game_loop.md)
275286
- [docs/input.md](docs/input.md)
@@ -292,14 +303,15 @@
292303
5. [Простые демо](spritePro/demoGames/) - Практические примеры
293304

294305
### Для разработки игр
295-
1. [docs/gameSprite.md](docs/gameSprite.md) - Игровые объекты
306+
1. [docs/sprite.md](docs/sprite.md) - Спрайты и игровые объекты
296307
2. [docs/animation.md](docs/animation.md) - Анимации
297-
3. [docs/timer.md](docs/timer.md) - Игровое время
298-
4. [docs/health.md](docs/health.md) - Игровые системы
299-
5. [docs/save_load.md](docs/save_load.md) - Сохранения
308+
3. [docs/tween.md](docs/tween.md) - Плавные переходы (в т.ч. Fluent API)
309+
4. [docs/timer.md](docs/timer.md) - Игровое время
310+
5. [docs/health.md](docs/health.md) - Игровые системы
311+
6. [docs/save_load.md](docs/save_load.md) - Сохранения
300312

301313
### Для продвинутых разработчиков
302-
1. [docs/physicSprite.md](docs/physicSprite.md) - Физика
314+
1. [docs/layout.md](docs/layout.md) - Автолейауты
303315
2. [TECHNICAL_SPECS.md](TECHNICAL_SPECS.md) - Архитектура
304316
3. [PERFORMANCE.md](PERFORMANCE.md) - Оптимизация
305317
4. [CONTRIBUTING.md](CONTRIBUTING.md) - Участие в разработке
@@ -312,9 +324,10 @@
312324
## 🔄 Обновления документации
313325

314326
### Последние обновления
315-
- **2024-06-01**: Добавлена система сохранения/загрузки
316-
- **2024-06-01**: Создан roadmap и технические спецификации
317-
- **2024-06-01**: Добавлено руководство по участию в проекте
327+
- **2026-02**: Fluent Tween API (DoMove, DoScale, SetEase, SetLoops, OnComplete, Kill) — демо fluent_tween_demo.py
328+
- **2026-02**: Layout, мультиплеер, крестики-нолики — обзор в docs/OVERVIEW.md
329+
- **2025-06**: Добавлена система сохранения/загрузки
330+
- **2025-06**: Создан roadmap и технические спецификации
318331

319332
### Планируемые обновления
320333
- Документация по системе инвентаря
@@ -333,9 +346,4 @@
333346
---
334347

335348
**Совет**: Используйте поиск по файлам (Ctrl+F) для быстрого поиска нужной информации в документации! 🔍
336-
### [docs/camera_and_particles.md](docs/camera_and_particles.md)
337-
**Камера и частицы**
338-
- Управление камерой и режим слежения
339-
- Система частиц и их конфигурация
340-
- Примеры использования
341349

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ while True:
9898
-**Аудио менеджер** - управление звуком и музыкой централизованно
9999
-**Система сохранений** - PlayerPrefs как в Unity!
100100
-**Якоря позиционирования** - размещайте объекты точно где нужно
101+
-**Автолейаут (Layout)** - flex, сетка, круг, линия для автоматического размещения дочерних спрайтов ([документация](docs/layout.md))
101102
-**Мультиплеер** - можно делать сетевые игры: встроенный TCP relay, контекст (send/poll/send_every), EventBus для событий; быстрый старт через `s.networking.run()`. В репозитории есть **мини-курс по мультиплеерным играм** (папка `multiplayer_course/`) — 10 уроков от обмена сообщениями до готовой мини-игры с меню и результатами.
102103

103104
---
@@ -459,7 +460,7 @@ python spritePro/demoGames/ping_pong.py
459460
460461
### 🎨 Игровые системы
461462
- **Animation** - Система анимаций
462-
- **Tween** - Плавные переходы (easing функции)
463+
- **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)
463464
- **Timer** - Таймеры для событий
464465
- **Health** - Система здоровья
465466
- **ParticleEmitter** - Генератор частиц
@@ -488,7 +489,7 @@ python spritePro/demoGames/ping_pong.py
488489
### 🧩 Полный список документации
489490
- Основы: [Game Loop](docs/game_loop.md) • [Input](docs/input.md) • [Debug](docs/debug.md) • [Camera & Particles](docs/camera_and_particles.md)
490491
- Спрайты и графика: [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)
491-
- 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)
492+
- 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)
492493
- Компоненты: [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)
493494
- Эффекты и частицы: [Particles](docs/particles.md)
494495
- Аудио: [Audio](docs/audio.md)

clicker.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def on_click():
88
text.set_text(f"score: {score}")
99
text.set_active(True)
1010
emitter.emit(button.rect.center)
11+
s.PlayerPrefs.set_int("score", score)
1112

1213

1314
# Initialize the library
@@ -16,7 +17,7 @@ def on_click():
1617
# Create a window
1718
s.get_screen((1280, 960), "My Game")
1819

19-
score = 0
20+
score = s.PlayerPrefs.get_int("score", 0)
2021

2122
bg = s.Sprite("", s.WH, s.WH_C)
2223
bg.set_color((0, 0, 180))

0 commit comments

Comments
 (0)