HACHIBAR SDK リファレンス

Tweet このエントリーをはてなブックマークに追加
<HACHIBARに戻る HACHIBARのライブラリリファレンスです。 ## 座標系 - 左上が(0,0)、右下が(7,15)です。 ## サウンド - HACHIBARのDigital14番ピンにスピーカがつながっているのでArduino標準のtone関数で音を鳴らすことができます。 ## 変数 ### trigger - int[6] - BTN_LEFT, BTN_RIGHT, BTN_UP, BTN_DOWN, BTN_A, BTN_Bという定数が配列のインデックスを表しています。 - キーが押されていない場合は0です。 - updateKey関数が呼ばれたタイミングでキーをスキャンします。 - キースイッチが押下されている間インクリメントされ続けます。 - キースイッチが離された瞬間、1フレームだけ-1になり、その後は0となります。 ## 関数 ### pset(bool b, int x, int y) 指定した座標をメモリに書き込みます。 ### rect(bool b, int x, int y, byte w, byte h) 指定した四角形をメモリに書き込みます。 ### init() GPIOの設定をします。setup()内で必ず実行してください。 ### setFont(HachibarFont *f) フォントを設定します。文字を描画する前には必ず実行してください。 ### drawChar(char c, int x, int y) 指定した座標のメモリに文字を書き込みます。 ### drawString(char *str, int x, int y) 文字列を表示します。xの指定に特徴があり、xをインクリメントし文字列が画面から見切れると画面の反対側から出てくるような剰余算が行われます。 ### updateKey() スイッチの入力を受け取ります。 ### updateDisplay() ディスプレイを更新します。loopごとに呼ぶことを推奨します。 ### nextFrame() 次のフレームを描画すべきかを返します。 loop内にはこの関数の呼び出しがtrueの時だけ処理することを推奨します。それにより30FPSでのゲーム進行となります。 ## フォント 2種類のフォントを同梱しています。 - 横幅5pxの通常フォント - `#include "hachibar_font.h"` で読みこみます。 - `setFont(&hachibar_font)` でフォントを設定します。 - 横幅3pxの小さめフォント - `#include "hachibar_sfont.h"` で読みこみます。 - `setFont(&hachibar_sfont)` でフォントを設定します。 ## ゲームひな形

#include "hachibar.h"      // HACHIBAR SDKをロードします。
#include "hachibar_font.h" // デフォルトのフォントをロードします。文字を描画する際は必須です。

Hachibar h;    // HACHIBAR SDK です。
int pos = 0;   // これから描画する文字のX座標です。

void setup(){
  h.init();    // HACHIBAR SDKを初期化します。この処理は必須です。
  h.setFont(&hachibar_font);  // 利用するフォントを指定します。文字を描画する際は必須です。
}

void loop(){
  if(h.nextFrame()){ // フレームレートを一定に保つための制御です。
    // このifの中にゲームの1フレームの処理を記述します。
    h.rect(false, 0, 0, 8, 16);         // 全画面を非点灯にします。
    h.drawString("Hello  ", pos, 0); // スクロールする文字を描画します。
    h.drawString("  World", pos, 8);

    if(h.trigger[h.BTN_LEFT] == 1){ // 左キースイッチが押されて1フレーム目に
      pos --;                       // 文字のX座標を1減らす。
    }
    if(h.trigger[h.BTN_RIGHT] == 1){ // 右キースイッチが押されて1フレーム目に
      pos ++;                        // 文字のX座標を1増やす。
    }
    h.updateKey();   // キースイッチの状態を取得します。
  }
  h.updateDisplay(); // 画面を更新します。
}

--- <HACHIBARに戻る