Выбор уровня сложности
Суть:
На экране выбираем 1, 2 или 3.
При нажатии на цифры у нас загораются лазеры в соответствии с сохраненными значениями. Можно долго выбирать между уровнями нужный тебе.
После того как лазеры загорелись можно нажать запускать игру.
Когда нажимаем на кнопку, то: сначала гасятся все лучи (на всякий случай) потом загораются те, что нужны.
Если 20 секунд не происходит никаких действий - лазеры выключаются.
Сценарий:
state: 0; is_play: 0; level: 0 / n
Пользователь тыкает на цифру.
Компьютер ищет у себя какие лучи включить.
Комп выключает все лучи методом setBeam из модуля Maze. Отсылает setBeam с аргументами id: -1, value: 0 всем устройствам.
ESP выключает лучи.
Комп всем сообщает, что сейчас НЕ игра, а выбран уровень сложности: Отправляем hstate (state:0, is_play:0, level:n).
На всякий случай запускается таймер на 1 секунду.
Комп сообщает всем devices какие лучи зажечь: SetBeam, id: 1, value: 1 на все устройства (devices). Один луч - одна команда.
ESP включают лучи.
Комп отправляет всем devices команду активировать кнопку: setCheckpoint, id: 0, value: 1 (это первая кнопка в пути).
ESP активирует кнопку.
Отправляем hstate (state:0, is_play:0, level:n).
Если был таймаут* уровня сложности - обнуляется. И запускается заново.
Можно еще раз “Пользователь тыкает на цифру” - возвращает в начало цикла.
*Таймер, чтобы погасить все лучи и кнопки через 25 секунд: setBeam, id: -1, value:0, всем devices. setCheckpoint, id: -1, value:0, всем devices
Отправляем hstate (state:0, is_play:0, level:0).
В случае нажатия - отправляет команду компьютеру: checkpoint_pressed, id:1, value:1
Переход в ход игры
Reference
Для того, чтобы выбрать уровень сложности по событиям - любиму клиенту socket.io необходимо отослать событие level_button с параметром от 1 до 3, который означает необходимый уровень сложности.
| Событие | Запрос |
|---|---|
level_button |
(int) 1-3 |
Пример запроса:
socket.emit('level_button', 1);
Changalog:
18.06.2018 ipacmanx добавил, что нужно сделать, чтобы выбрать уровень событием 31.05.2018 ipacmanx init
Posts
subscribe via RSS