Выбор уровня сложности

Суть:

На экране выбираем 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