Процессы взаимодействий
Здесь описаны основные процессы взаимодействия с лабиринтом.
Таблица взаимодействия
В этой таблице описаны события внутри websocket, а так же как они вляют на устройства и сервер.
| Этап | Компьютер | Устройства |
|---|---|---|
| Включение | - | - |
| Регистрация устройств | Отправляет register после включения |
|
Обновляют информацию в maze.json |
- | |
Отсылает подтверждение регистрации registered |
Обновляет инфу об id , а так же необходимая информация |
|
| Калибровка | Отправляет calibration |
Устройства начинают скрипт калибровки |
Отправляет calibration_finished или moving_calibrated (moving_uncalibrated, если не скалиброван). |
||
| Активация игры | Отсылает hstate : {state:0,is_play:0,level:0} |
- |
| Выбор уровня сложности | Отсылает hstate:{state:0,is_play:0,level:n} |
|
Ищет список лучей в config |
||
Отсылает setBeam: {id:n,value:1} 1 луч - 1 событие, где n номер луча |
Загораются лучи, но не пересекуются | |
Отсылает setCheckpoint: {id:n,value:2} n - номер кнопки старт в маршрутке |
Загорается кнопка старт | |
| Игрок нажиает на старт | Отправляет событие checkpoint_pressed:{id:n,value:1} |
|
| Игрок отпускает старт | Отправляет событие checkpoint_pressed:{id:n,value:0} |
|
| Старт игры | Событие hstate: {state:1,is_play:1,level:n} |
Начинает воспринимать пересечение лучей. |
| Звуковой сигнал “Старт игры” | ||
| Начинает играть музыка | ||
Событие setCheckpoint:{id:n,value:0}, где n - кнопка старта |
Выключается подсветка кнопки | |
Событие setCheckpoint: {id:n,value:2}, где n - следующая кнопка в маршруте после старта |
Включается подсветка кнопки | |
Запускает функцию blinkLight |
Моргает светодиодная лента | |
| Пауза 1,5 секунды | ||
Отсылает событие setLight:цвет |
Загорается светодиодная лента | |
| Пересечение луча | Событие hstate:{state:1,is_play:1,level:n} |
Событие beam_crossed:n, где n номер пересеченного лазера |
Событие setBeam: {id:n,value:0}, где n номер пересеченного лазера |
Гаснет луч | |
Функция blinkLight |
Моргает светодиодка | |
| Звуковой сигнал “Пересечение лазеров” | ||
| Записывается +1 пересеченный луч | ||
| Нажатие на кнопку | Событие hstate:{state:1,is_play:1,level:n} |
Отправляет событие checkpoint_pressed:{id:n,value:1} , где n нажатая кнопка |
Событие setCheckpoint: {id:n,value:0}, где n нажатая кнопка |
выключается кнопка | |
Событие setCheckpoint: {id:n,value:2}, где n следующая кнопка в маршруте |
включается подсветка кнопки | |
Функция blinkLight |
Моргает светодиодка | |
| Звуковой сигнал “Нажатие на кнопка” | ||
| Победа | Событие hstate:{state:4,is_play:0,level:n} |
Лазеры не чувствительны к пересечениям |
Событие setBeam: {id:-1,value:0} |
Выключаются все лазеры | |
Событие setCheckpoint: {id:-1,value:0} |
Выключаются все кнопки | |
Событие setLight |
Светодиодка зеленая | |
| Звуковой сигнал “Выигрыш” | ||
| Музыка перестает играть | ||
| Таймер закончен | Событие hstate:{state:2,is_play:0,level:n} |
Лазеры не чувствительны к пересечениям |
Событие setBeam: {id:-1,value:0} |
Выключаются все лазеры | |
Событие setCheckpoint: {id:-1,value:0} |
Выключаются все кнопки | |
Событие setLight |
Светодиодка красная | |
| Звуковой сигнал “Проигрыш” | ||
| Музыка перестает играть | ||
| Проигрыш | Событие hstate:{state:3,is_play:0,level:n} |
Лазеры не чувствительны к пересечениям |
Событие setBeam: {id:-1,value:0} |
Выключаются все лазеры | |
Событие setCheckpoint: {id:-1,value:0} |
Выключаются все кнопки | |
Событие setLight |
Светодиодка красная | |
| Звуковой сигнал “Проигрыш” | ||
| Музыка перестает играть | ||
| Сброс игры | Событие hstate:{state:-1,is_play:0,level:n} |
|
Событие setBeam: {id:-1,value:0} |
Выключаются все лазеры | |
Событие setCheckpoint: {id:-1,value:0} |
Выключаются все кнопки | |
Событие setLight |
Светодиодка черная | |
| Музыка перестает играть | - |
Posts
subscribe via RSS