按钮#

介绍#

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.

V5 控制器的正面和背面,按钮以黄色高亮显示。控制器正面左侧有上、下、左、右方向键,右侧从 12 点钟方向顺时针方向依次为 X、A、B、Y 键。控制器背面左侧和右侧分别有 L1、L2、R1 和 R2 键。

使用权#

The controller class provides the following button objects. Each object is an instance of the button class.

目的

用法示例

描述

ButtonA

Controller.ButtonA.pressing()

A 键。

ButtonB

Controller.ButtonB.pressing()

B 键。

ButtonX

Controller.ButtonX.pressing()

X 按钮。

ButtonY

Controller.ButtonY.pressing()

Y 键。

ButtonDown

Controller.ButtonDown.pressing()

向下按钮。

ButtonUp

Controller.ButtonUp.pressing()

向上按钮。

ButtonLeft

Controller.ButtonLeft.pressing()

左键。

ButtonRight

Controller.ButtonRight.pressing()

右键。

ButtonL1

Controller.ButtonL1.pressing()

L1 按钮。

ButtonL2

Controller.ButtonL2.pressing()

L2 按钮。

ButtonR1

Controller.ButtonR1.pressing()

R1按钮。

ButtonR2

Controller.ButtonR2.pressing()

R2 按钮。

笔记#

  • Before using a button member function, create a controller object.

// Create a Controller object
controller Controller = controller();

成员功能#

The button class includes the following member functions:

Getter — 读取按钮状态。

  • pressing — Returns whether the button is being pressed.

回调函数——当按钮事件发生时运行的函数。

  • pressed — Registers a function to run when the button is pressed.

  • released — Registers a function to run when the button is released.

Getter#

紧迫#

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 L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

回调函数#

按下#

pressed registers a function that runs when the button is pressed.

可用功能

void pressed(void (* callback)(void)) const;

范围

类型

描述

callback

void (*)(void)

按钮按下时运行的函数。

返回值

此函数不返回值。

例子

Define the callback function outside of main.

// Drive forward when A is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Register the callback inside main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

发布#

released registers a function that runs when the button is released.

可用功能

void released(void (* callback)(void)) const;

范围

类型

描述

callback

void (*)(void)

按钮释放时运行的函数。

返回值

此函数不返回值。

例子

Define the callback function outside of main.

// Stop the drivetrain when A is released
void stopDriving() {
  Drivetrain.stop();
}

Register the callback inside main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}