Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
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(); | ||
</ | </ | ||
Теперь мы имеем игровое поле с лабиринтом, | Теперь мы имеем игровое поле с лабиринтом, |