Arduboyのボタン入力

ボタンの種類

  • UP_BUTTON
  • RIGHT_BUTTON
  • LEFT_BUTTON
  • DOWN_BUTTON
  • A_BUTTON
  • B_BUTTON

ボタンが押されていることを取得する

#include <Arduboy2.h>

Arduboy2 arduboy;

void setup()
{
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.clear();
}

void loop()
{
  if (!arduboy.nextFrame()) return;
  arduboy.clear();

  if (arduboy.pressed(LEFT_BUTTON + A_BUTTON)) {
    // 左とAボタンの両方が押されている
    arduboy.print("LEFT + A");
  } else if (arduboy.pressed(A_BUTTON)) {
    // Aボタンが押されている
    arduboy.print("A");
  }

  arduboy.display();
}

ボタンが押されていないことを取得する

#include <Arduboy2.h>

Arduboy2 arduboy;

void setup()
{
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.clear();
}

void loop()
{
  if (!arduboy.nextFrame()) return;
  arduboy.clear();

  if (arduboy.notPressed(A_BUTTON)) {
    // Aボタンが押されていない
    arduboy.print("A");
  }

  arduboy.display();
}

ボタンが押された瞬間、放された瞬間を取得する

#include <Arduboy2.h>

Arduboy2 arduboy;

void setup()
{
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.clear();
}

void loop()
{
  if (!arduboy.nextFrame()) return;

  // justPressed,justReleasedを使用するときは、
  // 毎フレームpollButtonsを呼ばなくてはならない
  arduboy.pollButtons();

  arduboy.clear();

  if (arduboy.justPressed(A_BUTTON)) {
    // Aボタンが押された瞬間
    arduboy.print("PRESS");
  }
  if (arduboy.justReleased(A_BUTTON)) {
    // Aボタンが放された瞬間
    arduboy.print("RELEASE");
  }

  arduboy.display();
}

ボタンの状態を取得する

#include <Arduboy2.h>

Arduboy2 arduboy;

void setup()
{
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.clear();
}

void loop()
{
  if (!arduboy.nextFrame()) return;
  arduboy.clear();

  arduboy.print(arduboy.buttonsState());

  arduboy.display();
}
ボタン 数値
UP_BUTTON 128
RIGHT_BUTTON 64
LEFT_BUTTON 32
DOWN_BUTTON 16
A_BUTTON 8
B_BUTTON 4