단추#

소개#

button 클래스는 controller 클래스의 파생 클래스입니다. 컨트롤러 버튼 상태 및 버튼 이벤트 콜백에 대한 액세스를 제공합니다.

button 객체는 controller 객체를 통해 접근됩니다. 직접 생성되지는 않습니다.

V5 컨트롤러의 앞면과 뒷면. 버튼은 노란색으로 강조 표시되어 있습니다. 컨트롤러 앞면에는 왼쪽에 위, 아래, 왼쪽, 오른쪽 화살표 버튼이 있고, 오른쪽에는 12시 방향부터 시계 방향으로 X, A, B, Y 버튼이 있습니다. 컨트롤러 뒷면에는 왼쪽과 오른쪽에 각각 L1, L2, R1, R2 버튼이 있습니다.

입장#

controller 클래스는 다음과 같은 버튼 객체를 제공합니다. 각 객체는 button 클래스의 인스턴스입니다.

물체

사용 예시

설명

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 버튼.

메모#

  • button 멤버 함수를 사용하기 전에 controller 객체를 생성하십시오.

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

회원 기능#

button 클래스는 다음과 같은 멤버 함수를 포함합니다.

게터 — 버튼 상태를 읽습니다.

콜백 함수 — 버튼 이벤트 발생 시 실행되는 함수입니다.

  • pressed — 버튼이 눌렸을 때 실행될 함수를 등록합니다.

  • released — 버튼이 해제될 때 실행될 함수를 등록합니다.

얻는 사람#

누르다#

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;

매개변수

유형

설명

callback

void (*)(void)

버튼을 눌렀을 때 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

콜백 함수를 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;

매개변수

유형

설명

callback

void (*)(void)

버튼에서 손을 떼면 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

콜백 함수를 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);
}