ボタン#

導入#

button クラスは controller クラスの派生クラスです。コントローラーのボタンの状態とボタンのイベントコールバックへのアクセスを提供します。

button オブジェクトは、 controller オブジェクトを介してアクセスされます。直接構築されるものではありません。

EXPコントローラーの前面と上面。ジョイスティック、矢印ボタン、アクションボタンが黄色で強調表示されています。コントローラーの表面には左右に2つのジョイスティックがあり、左側に上下の矢印ボタン、右側にAボタンとBボタンがあります。コントローラーの上部には、左側にL1とL2、右側にR1とR2があります。

アクセス#

controller クラスは、以下のボタン オブジェクトを提供します。各オブジェクトは button クラスのインスタンスです。

物体

使用例

説明

ButtonA

Controller.ButtonA.pressing()

Aボタン。

ButtonB

Controller.ButtonB.pressing()

Bボタン。

ButtonDown

Controller.ButtonDown.pressing()

下ボタン。

ButtonUp

Controller.ButtonUp.pressing()

上ボタン。

ButtonL1

Controller.ButtonL1.pressing()

L1ボタン。

ButtonL2

Controller.ButtonL2.pressing()

L2ボタン。

ButtonL3

Controller.ButtonL3.pressing()

L3ボタン。

ButtonR1

Controller.ButtonR1.pressing()

R1ボタン。

ButtonR2

Controller.ButtonR2.pressing()

R2ボタン。

ButtonR3

Controller.ButtonR3.pressing()

R3ボタン。

注記#

  • button メンバー関数を使用する前に、 controller オブジェクトを作成します。

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

メンバーの機能#

button クラスには、以下のメンバ関数が含まれています。

ゲッター — ボタンの状態を読み取る。

  • pressing — ボタンが押されているかどうかを返します。

コールバック — ボタンイベントが発生したときに実行される関数。

  • pressed — ボタンが押されたときに実行される関数を登録します。

  • released — ボタンが離されたときに実行される関数を登録します。

ゲッター#

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#

pressed は、ボタンが押されたときに実行される関数を登録します。

利用可能な機能

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

パラメータ

タイプ

説明

callback

void (*)(void)

ボタンが押されたときに実行される関数。

戻り値

この関数は値を返しません。

例

mainの外でコールバック関数を定義します。

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

main内でコールバックを登録します。

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released ボタンが離されたときに実行される関数を登録します。

利用可能な機能

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

パラメータ

タイプ

説明

callback

void (*)(void)

ボタンが離されたときに実行される関数。

戻り値

この関数は値を返しません。

例

mainの外でコールバック関数を定義します。

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

main内でコールバックを登録します。

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}