NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(gb.menu関数の使い方)

■gb.menu関数
 Gamebuimo.hライブラリのgb.menu関数は、アイテムリストから選択するメニューを表示します。

■使用例
 gb.menu関数を使ったArduinoIDEのプログラム例は図1の通りです。
 このプログラムを実行するとsetup関数中のgb.begin関数でGamebuinoオブジェクトを初期化し、gb.titleScreen関数で画面に「Menu example」と表示します。
 スタート画面でキーボードの「K」(GamebuinoのA)ボタンを押すと画面左上に「SystemInfo」「ChangeGame」と表示されます。
 「SystemInfo」でキーボードの「K」ボタンを押すとバッテリー電圧等の詳細情報が画面表示され、「ChangeGame」でキーボードの「K」ボタンを押すとgb.changeGame関数が実行され「Flashing loader… DON'T TURN OFF!」と表示後ゲーム選択画面に戻ります。
 参考に図1プログラムをHEXファイルに変換し、それをSimbuino4Webエミュレートした結果を図2に示します。

#include <SPI.h>
#include <Gamebuino.h>
Gamebuino gb;

////declare all the variables needed to make a menu
//number of items in the menu
#define MENULENGTH 2
//The differents strings to put in the menu
//each string can be used in different menus
const char strSystemInfo[] PROGMEM = "Stystem info";
const char strChangeGame[] PROGMEM = "Change game";
//Put all the different items together in a menu (an array of strings actually)
const char* const menu[MENULENGTH] PROGMEM = {
   strSystemInfo,
   strChangeGame,
};

void setup() {
   gb.begin();
   gb.titleScreen(F("Menu example"));
}

void loop() {
   switch (gb.menu(menu, MENULENGTH)) {
       case -1: //nothing selected
           gb.titleScreen(F("Menu example"));
           break;
       case 0: //display system info
           displaySystemInfo();
           break;
       case 1: //change game
           gb.changeGame();
           break;
       default:
           break;
   }
}

void displaySystemInfo() {
   while (1) {
       if (gb.update()) {
           if (gb.buttons.pressed(BTN_C)) {
               gb.sound.playCancel();
               return;
           }
           gb.display.print(F("Bat:"));
           gb.display.print(gb.battery.voltage);
           gb.display.println(F("mV"));

           gb.display.print(F("Bat lvl:"));
           gb.display.print(gb.battery.level);
           gb.display.println(F("/4"));

           gb.display.print(F("Light:"));
           gb.display.println(gb.backlight.ambientLight);

           gb.display.print(F("Backlight:"));
           gb.display.println(gb.backlight.backlightValue);

           gb.display.print(F("Volume:"));
           gb.display.print(gb.sound.getVolume());
           gb.display.print(F("/"));
           gb.display.println(gb.sound.volumeMax);
       }
   }
}
イメージ 1
図1:プログラム例
 

 イメージ 1
図2:プログラム実行結果

 

■構文
 gb.menu(menu, MENULENGTH)

■パラメータ
 menu     :PROGMEMの文字列配列として格納される、
           選択する項目です。(char ** PROGMEM)
 MENULENGTH:メニュー内の項目の数。(buye)

■戻り値
 選択された項目の番号。項目が選択されずにメニューが残っている場合は-1(char)
 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【Gamebuinoリファレンス】目次に戻る