# 🚌 Bus Word Game - Промпт для продолжения разработки ## 📋 Контекст проекта Вы работаете с игрой **Bus Word Game** - веб-приложением на Flutter с движком Flame. Игрок управляет автобусом Volkswagen T1, который ловит предметы, соответствующие отображаемому слову, перепрыгивая через ловушки и избегая неподходящих предметов. ## 🏗️ Текущее состояние проекта ### ✅ Реализованные функции: - **Основная механика**: прыжки автобуса с физикой (гравитация 700, прыжок -600) - **Анимации**: растяжение вверх при прыжке (1.3x), сжатие вниз при приземлении (0.8x) - **Платформы**: тайловые платформы из 3-5 тайлов (left.png, middle.png, right.png) - **Земля**: многослойная тайловая земля с прокруткой - **Фоновое слово**: большое целевое слово на фоне неба (120px шрифт) - **UI**: отображение слова и счета - **Отладка**: подробное логирование и визуальная отладка - **Система приоритетов**: z-index от -1000 (фон) до 3000 (отладка) ### 🎯 Архитектура: - **Component-based**: все объекты - Flame компоненты - **State Management**: централизованное управление через GameState - **Event-driven**: обработка кликов и клавиатуры - **Timer-based**: генерация объектов по времени ### 📁 Структура файлов: ``` lib/game/ ├── bus_word_game.dart # Главный игровой класс ├── game_state.dart # Состояние игры └── components/ ├── bus_component.dart # Автобус (priority: 1000) ├── platform_component.dart # Платформы (priority: 100) ├── tile_ground_component.dart # Земля (priority: -1000) ├── background_word_component.dart # Фоновое слово (priority: -500) ├── ui_component.dart # UI (priority: 2000) ├── debug_component.dart # Отладка (priority: 3000) └── obstacle_component.dart # Препятствия ``` ## 🎮 Игровая механика ### Управление: - **Клик/Пробел**: прыжок автобуса - **ESC**: пауза/возобновление ### Физика: - Гравитация: 700 пикселей/сек² - Скорость прыжка: -600 пикселей/сек - Состояния: на земле, на платформе, в воздухе ### Анимации: - Растяжение при прыжке: 0.15 сек, до 1.3x по высоте - Сжатие при приземлении: 0.15 сек, до 0.8x по высоте ### Платформы: - Генерация: каждые 2 секунды - Высота: 180-400px от земли - Размеры: 3-5 тайлов в ширину (192-320px) ## 🛠️ Технические детали ### Зависимости (pubspec.yaml): ```yaml dependencies: flutter: sdk flame: ^1.16.0 audioplayers: ^5.2.1 shared_preferences: ^2.2.2 ``` ### Ключевые параметры: ```dart // bus_word_game.dart static const double gameSpeed = 200.0; static const double obstacleSpawnInterval = 2.0; static const double wordChangeInterval = 10.0; static const double platformSpawnInterval = 2.0; // bus_component.dart double gravity = 700.0; double velocityY = -600.0; double animationDuration = 0.15; ``` ### Система логирования: - Используется `dart:developer` для всех компонентов - Категории: загрузка, физика, коллизии, анимации - Визуальные индикаторы состояния автобуса ## 🎯 Приоритетные задачи для продолжения ### 🔥 Критические (исправления): 1. **Препятствия не генерируются** - раскомментировать `_spawnObstacle()` в `bus_word_game.dart` 2. **Система очков** - реализовать логику подсчета очков 3. **Конец игры** - обработка столкновений с ловушками ### 🚀 Высокий приоритет: 1. **Звуковые эффекты** - добавить аудио для прыжков, приземлений, сбора предметов 2. **Система рекордов** - сохранение лучших результатов 3. **Настройки игры** - регулировка сложности, звука, графики ### 📈 Средний приоритет: 1. **Новые типы препятствий** - движущиеся платформы, телепорты 2. **Система бонусов** - временные усиления, щиты 3. **Улучшенная графика** - частицы, эффекты, анимации фона ### 🎨 Низкий приоритет: 1. **Мобильная версия** - адаптация для сенсорных экранов 2. **Мультиплеер** - соревновательный режим 3. **Кастомизация** - скины автобуса, темы ## 💡 Рекомендации по разработке ### Стиль кода: - Следуйте существующей архитектуре компонентов - Используйте `developer.log()` для отладки - Устанавливайте правильные `priority` для новых компонентов - Добавляйте комментарии на русском языке ### Отладка: - Проверяйте консоль браузера (F12 → Console) - Используйте `DebugComponent` для визуальной отладки - Мониторьте FPS и производительность ### Производительность: - Ограничивайте количество объектов на экране - Используйте пулы объектов для часто создаваемых элементов - Оптимизируйте рендеринг и коллизии ## 🔧 Команды для работы ```bash # Запуск в режиме разработки flutter run -d web-server --web-port 8080 # Установка зависимостей flutter pub get # Сборка для продакшена flutter build web # Анализ кода flutter analyze # Тестирование flutter test ``` ## 📚 Полезные ресурсы ### Документация: - [Flame Documentation](https://docs.flame-engine.org/) - [Flutter Documentation](https://docs.flutter.dev/) - [Dart Language Tour](https://dart.dev/guides/language/language-tour) ### Примеры кода: - Обработка событий: `bus_word_game.dart` → `onTapDown()`, `onKeyEvent()` - Физика: `bus_component.dart` → `update()`, `jump()` - Анимации: `bus_component.dart` → `_updateAnimation()` - Коллизии: `platform_component.dart` → `isBusOnPlatform()` ## 🎯 Конкретные задачи ### Задача 1: Восстановить генерацию препятствий ```dart // В bus_word_game.dart, метод _startObstacleSpawner() onTick: () { if (!gameState.isPaused && !gameState.isGameOver) { _spawnObstacle(); // Раскомментировать эту строку } }, ``` ### Задача 2: Добавить звуковые эффекты ```dart // Создать AudioComponent class AudioComponent extends Component with HasGameRef { // Загрузить звуки в onLoad() // Воспроизводить в соответствующих событиях } ``` ### Задача 3: Система сохранения рекордов ```dart // В game_state.dart добавить Future saveHighScore(int score) async { final prefs = await SharedPreferences.getInstance(); await prefs.setInt('high_score', score); } ``` ## 🚨 Важные замечания 1. **Всегда тестируйте** изменения в браузере 2. **Проверяйте логи** в консоли для отладки 3. **Следуйте существующему стилю** кода 4. **Добавляйте отладочную информацию** для новых функций 5. **Оптимизируйте производительность** при добавлении новых элементов ## 🎮 Цель игры Создать увлекательную игру, где игрок: - Ловит предметы, соответствующие слову - Избегает ловушек и неподходящих предметов - Использует платформы для достижения высоты - Набирает очки и улучшает рекорды --- **Используйте этот промпт как руководство для продолжения разработки проекта!** 🚌✨