◇P/ECEで C言語 【スピ魅を移植してみようB(ボタン入力判定)】

チュートリアルにはボタン判定の説明がありません。
そろそろいい加減に APIマニュアルを見なければなりませんね(汗)

ボタン操作系APIは4つですね。
注意としては,実は呼び出してはいけない関数も一緒に書かれています。
単純に考えると,pceAppProc内で pcePadGetを呼び出すと取得できそうですね。

○実験してみる

Aの pceAppProcに追加して実験してみましょう。

void pceAppProc(int cnt){
  unsigned long bot;
  char moji[64];

  bot=pcePadGet();
  if(bot){
    sprintf(moji, "bot=%d", bot);
    pceFontSetPos( 0, 16);
    pceFontPrintf(moji);
    draw=1;
  }

  pceLCDSetObject(&obj, &pMC01PI, 0, 0, 0, 0, 16, 16, DRW_NOMAL);
  pceLCDDrawObject(obj);

  if(draw){
    pceLCDTrans();
    draw=0;
  }
}

これを保存して,ビルドして,runで実行してみる。

ボタンを押すと,そのボタンの数値が表示される。
2つ押すと,異なる数値が表示されるので,同時押しも判定できる事がわかる。

○推測

つまり,Aボタンが押されている事を調べる為には,
bot=pcePadGet();
if((bot & PAD_A) != 0){
 「Aボタンを押した時の処理」
}
という感じになると思います。

A,Bボタン同時押しの判定は,
bot=pcePadGet();
if(bot == (PAD_A + PAD_B)){
 「A,Bボタン同時押し時の処理」
}
でしょうか。


トップメニュー開発言語メニューP/ECE