You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,17 @@
5
5
Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [3.3.0]
9
+
10
+
### Added
11
+
- ✨ **Мобильный ввод: экранная клавиатура для TextInput** — в Kivy‑режиме SpritePro автоматически запрашивает системную софт‑клавиатуру, когда любое поле `s.TextInput` становится активным. События `on_key_down` и `on_textinput` из Kivy транслируются в `pygame.KEYDOWN` и `pygame.TEXTINPUT`, поэтому `TextInput` обрабатывает ввод на Android так же, как на desktop.
12
+
13
+
### Changed
14
+
- 🔧 **Kivy mobile host** — `_KivySpriteProWidget` отслеживает активные `s.TextInput` и открывает/закрывает экранную клавиатуру через `Window.request_keyboard(...)`. Закрытие клавиатуры происходит автоматически при деактивации всех полей ввода (по Enter или при тапе вне поля).
15
+
- 🔧 **Версия библиотеки** — релиз обновлён до `3.3.0`.
16
+
17
+
---
18
+
8
19
## [3.2.0]
9
20
10
21
### Added
@@ -647,6 +658,13 @@
647
658
648
659
## Планы на будущие версии
649
660
661
+
## [Unreleased]
662
+
663
+
- ✨ Улучшенное Kivy-лобби (`use_lobby=True`, `platform="kivy"`) с поддержкой мобильного режима и удобным десктопным тестированием.
664
+
- ✨ Автозапуск нескольких Kivy-процессов с лобби при `multiplayer_clients>1` — каждый процесс = отдельный игрок, для локального теста мультиплеера.
665
+
- 🎨 Перевод лобби на flex-лейауты SpritePro (`layout_flex_column` / `layout_flex_row`) для аккуратного расположения полей, кнопок и статуса.
666
+
- 📚 Обновления документации по `use_lobby=True`, Kivy-режиму и демо `three_clients_move_demo`.
- У **обоих** игроков закрывается лобби и запускается игра (`multiplayer_main(net, role)`).
285
312
313
+
### Сценарий для игрока (mobile / Kivy)
314
+
315
+
- Запуск через `s.run(..., platform="kivy", multiplayer=True, multiplayer_use_lobby=True)` или Kivy-билд.
316
+
- Окно лобби и сама игра работают внутри одного Kivy-приложения (SpritePro рендерится в Kivy-виджет).
317
+
- Каждый процесс/билд даёт **одного** игрока; для локальных тестов мультиплеера используйте несколько устройств/эмуляторов (по одному клиенту на процесс) **или автоспавн процессов по `clients` (см. ниже)**.
318
+
319
+
Если указать `multiplayer_clients=1`, такой запуск можно рассматривать как «build‑режим» (один экземпляр клиента, без автоспавна дополнительных окон).
320
+
286
321
### Для разработчика
287
322
288
323
-**События лобби:** хост рассылает `start_game` при нажатии «В игру»; клиент при получении `start_game` тоже переходит в игру. Кнопка «Назад» закрывает соединение и возвращает к экрану настройки.
289
-
-**Очистка UI:** лобби реализовано как `MultiplayerLobbyScene(s.Scene)`. При выходе из лобби вызывается `on_exit()`: все спрайты лобби (кнопки, поля ввода, текст, в том числе дочерние `text_sprite`) снимаются с регистрации, в игре не остаётся элементов лобби.
324
+
-**Очистка UI:** лобби реализовано как `MultiplayerLobbyScene(s.Scene)` и обновляется через `update()`. При выходе из лобби вызывается `on_exit()`: все спрайты лобби (кнопки, поля ввода, текст, в том числе дочерние `text_sprite`) снимаются с регистрации, в игре не остаётся элементов лобби.
290
325
-**Использование без run():** можно вызвать лобби вручную после `get_screen()` и передать колбэк перехода в игру:
291
326
292
327
```python
293
328
from spritePro.readyScenes import run_multiplayer_lobby
Если игра уже запускается через `s.run(...)`, то для нового кода обычно удобнее перейти на `s.run(..., multiplayer=True)` и использовать `s.networking.run(...)` только как низкоуровневый runner.
-**use_lobby=True** (в коде) — одно окно с лобби: настройка (имя, хост/клиент, порт, IP), подключение, roster; у хоста кнопки «Назад» и «В игру», у клиента «Назад». Не используется при запуске через `--quick` / env (тогда роль уже задана).
349
+
-**use_lobby=True** (в коде)
350
+
- desktop / pygame: одно окно с лобби: настройка (имя, хост/клиент, порт, IP), подключение, roster; у хоста кнопки «Назад» и «В игру», у клиента «Назад».
351
+
- mobile / Kivy: одно окно с лобби внутри Kivy-приложения; `size` из `s.run(...)` переиспользуется для окна лобби.
352
+
- если `platform="kivy"` и `multiplayer_clients>1`, SpritePro поднимает несколько процессов Kivy с лобби (по одному игроку на процесс) — удобно для локального теста мультиплеера на ПК.
306
353
-`--server` — только сервер.
307
354
-`--host_mode` — сервер + клиент в одном процессе.
308
355
-`--quick` — быстрый запуск (хост + второй клиент).
0 commit comments