按钮#
介绍#
The button class is a derived class of the controller class. It provides access to controller button states and button event callbacks.
A button object is accessed through a controller object. It is not constructed directly.
The IQ (1st gen) Controller has eight main button objects. If an IQ (2nd gen) Controller is connected to the IQ (1st gen) Brain, the joystick buttons ButtonL3 and ButtonR3 can also be used.

使用权#
The controller class provides the following button objects. Each object is an instance of the button class.
目的 |
用法示例 |
描述 |
|---|---|---|
|
|
E ▼ 按钮。 |
|
|
E ▲ 按钮。 |
|
|
F ▼ 按钮。 |
|
|
F ▲ 按钮。 |
|
|
L ▼ 按钮。 |
|
|
L ▲ 按钮。 |
|
|
R ▼ 按钮。 |
|
|
R ▲ 按钮。 |
|
|
左摇杆按钮。仅适用于 IQ(第二代)控制器。 |
|
|
右摇杆按钮。仅适用于 IQ(第二代)控制器。 |
笔记#
Before using a
buttonmember function, create acontrollerobject.ButtonL3andButtonR3are only available when an IQ (2nd gen) Controller is connected.
// Create a controller object
controller Controller = controller();
成员功能#
The button class includes the following member functions:
Getter — 读取按钮状态。
pressing— Returns whether the button is being pressed.
回调函数——当按钮事件发生时运行的函数。
Getter#
pressing#
pressing returns whether the button is currently being pressed.
可用功能
bool pressing() const;
参数
此函数没有参数。
返回值
返回布尔值。
true— The button is being pressed.false— The button is not being pressed.
例子
// Turn right while R Up is pressed
while (true) {
if (Controller.ButtonRUp.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
回调函数#
pressed#
pressed registers a function that runs when the button is pressed.
可用功能
void pressed(void (* callback)(void)) const;
范围 |
类型 |
描述 |
|---|---|---|
|
|
按钮按下时运行的函数。 |
返回值
此函数不返回值。
例子
Define the callback function outside of main.
// Drive forward when F Up is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
Register the callback inside main.
int main() {
vexcodeInit();
// Run driveForward when F Up is pressed
Controller.ButtonFUp.pressed(driveForward);
}
released#
released registers a function that runs when the button is released.
可用功能
void released(void (* callback)(void)) const;
范围 |
类型 |
描述 |
|---|---|---|
|
|
按钮释放时运行的函数。 |
返回值
此函数不返回值。
例子
Define the callback function outside of main.
// Stop the drivetrain when F Up is released
void stopDriving() {
Drivetrain.stop();
}
Register the callback inside main.
int main() {
vexcodeInit();
// Run stopDriving when F Up is released
Controller.ButtonFUp.released(stopDriving);
}