Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot_c:exp53 [2024/12/15 16:54] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp53 [2024/12/15 17:03] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 290: | Строка 290: | ||
| } | } | ||
| }; | }; | ||
| - | |||
| - | class Button { | ||
| - | private: | ||
| - | int pin; | ||
| - | bool pressState; | ||
| - | bool oldState; | ||
| - | |||
| - | public: | ||
| - | Button(int _pin, bool _pressState) { | ||
| - | pin = _pin; | ||
| - | pinMode(pin, | ||
| - | pressState = _pressState; | ||
| - | oldState = not _pressState; | ||
| - | } | ||
| - | |||
| - | bool onPress() { | ||
| - | bool state = digitalRead(pin); | ||
| - | if (state != oldState){ | ||
| - | oldState = state; | ||
| - | if (state == pressState) return true; | ||
| - | } | ||
| - | return false; | ||
| - | } | ||
| - | }; | ||
| - | |||
| - | Button btn_up(16, HIGH); | ||
| - | Button btn_down(15, | ||
| - | Button btn_left(12, | ||
| - | Button btn_right(0, | ||
| const int boxes_number = 3; | const int boxes_number = 3; | ||
| Строка 366: | Строка 337: | ||
| </ | </ | ||
| - | Для хранения объектов | + | Создаем массив объектов |
| - | < | + | < |
| - | Gates = [] | + | const int boxes_number |
| - | Boxes = [] | + | Box boxes[boxes_number] = { |
| + | {&tft, & | ||
| + | {&tft, & | ||
| + | {&tft, & | ||
| + | }; | ||
| </ | </ | ||
| - | Создаем | + | Создаем |
| - | < | + | < |
| - | Boxes.append(Box(tft, 3,4)) | + | const int gates_number = 3; |
| - | Boxes.append(Box(tft, 4,6)) | + | Gate gates[gates_number] = { |
| - | Boxes.append(Box(tft, 2,7)) | + | {&tft, & |
| + | | ||
| + | | ||
| + | }; | ||
| </ | </ | ||
| - | Оператор '' | + | Создаем кладовщика: |
| - | + | < | |
| - | Создаем | + | Man man(&tft, &reader, 5, 6); |
| - | < | + | |
| - | Gates.append(Gate(tft, 6,3)) | + | |
| - | Gates.append(Gate(tft, 6,4)) | + | |
| - | Gates.append(Gate(tft, | + | |
| </ | </ | ||
| - | Создаем кладовщика: | + | Вызываем |
| - | < | + | < |
| - | man = Man(tft, 5, 6) | + | for (int i = 0; i < boxes_number; |
| + | boxes[i].draw(); | ||
| + | } | ||
| + | |||
| + | for (int i = 0; i < gates_number; | ||
| + | gates[i].draw(); | ||
| + | } | ||
| + | |||
| + | man.draw(); | ||
| </ | </ | ||
| Теперь мы имеем игровое поле с лабиринтом, | Теперь мы имеем игровое поле с лабиринтом, | ||