Кнопка#
Введение#
Класс button является производным классом от класса controller. Он предоставляет доступ к состояниям кнопок контроллера и обратным вызовам событий кнопок.
A button object is accessed through a controller object. It is not constructed directly.

Доступ#
The controller class provides the following button objects. Each object is an instance of the button class.
Объект |
Пример использования |
Описание |
|---|---|---|
|
|
Кнопка А. |
|
|
Кнопка B. |
|
|
Кнопка X. |
|
|
Кнопка Y. |
|
|
Кнопка Вниз. |
|
|
Кнопка Вверх. |
|
|
Левая кнопка. |
|
|
Правая кнопка. |
|
|
Кнопка L1. |
|
|
Кнопка L2. |
|
|
Кнопка R1. |
|
|
Кнопка R2. |
Примечания#
Перед использованием функции-члена
button, создайте объект контроллераcontroller.
// Create a Controller object
controller Controller = controller();
Функции участников#
Класс button включает следующие функции-члены:
Геттер — Считывает состояние кнопки.
pressing— Возвращает значение, указывающее, нажата ли кнопка.
Обратные вызовы — Запускают функции при возникновении событий нажатия кнопки.
Геттер#
нажимая#
Нажатие клавиши pressing возвращает значение, указывающее, нажата ли кнопка в данный момент.
Доступная функция
bool pressing() const;
Параметры
Эта функция не имеет параметров.
Возвращаемая стоимость
Возвращает логическое значение.
true— Кнопка нажата.false— Кнопка не нажата.
Пример
// Turn right while L1 is pressed
while (true) {
if (Controller.ButtonL1.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
Обратные звонки#
нажат#
pressed регистрирует функцию, которая выполняется при нажатии кнопки.
Доступная функция
void pressed(void (* callback)(void)) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая выполняется при нажатии кнопки. |
Возвращаемая стоимость
Эта функция не возвращает значения.
Пример
Определите функцию обратного вызова вне блока main.
// Drive forward when A is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
Зарегистрируйте функцию обратного вызова внутри main.
int main() {
vexcodeInit();
// Run driveForward when A is pressed
Controller.ButtonA.pressed(driveForward);
}
выпущенный#
released регистрирует функцию, которая выполняется при отпускании кнопки.
Доступная функция
void released(void (* callback)(void)) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая выполняется при отпускании кнопки. |
Возвращаемая стоимость
Эта функция не возвращает значения.
Пример
Определите функцию обратного вызова вне блока main.
// Stop the drivetrain when A is released
void stopDriving() {
Drivetrain.stop();
}
Зарегистрируйте функцию обратного вызова внутри main.
int main() {
vexcodeInit();
// Run stopDriving when A is released
Controller.ButtonA.released(stopDriving);
}