RGKT-NDS-STDY-014(002)
GBDK の waitpad() 関数モドキ(ダウンエッジ検出用)作成時に案出ししといた
アップエッジ・押しっぱなしの検出用も書いて(てゆーかほぼコピペ)単体ソースファイルに分けた。
言いだしっぺが書かないのもなんだし。
ジャンケンゲーム用に浮かんだ関数だけどジャンケン以外でも使いそうだし。
inputSub.h
// TODO: ここに一意の識別子を定義する(重複インクルード防止用)。 #ifndef _INPUT_SUB_H_ #define _INPUT_SUB_H_ // TODO: ここに、このヘッダファイルが必要とする外部ヘッダファイルを記述する。 #include <nds/ndstypes.h> #ifdef __cplusplus extern "C" { #endif // TODO: ここに #define 定義、ならびに関数のプロトタイプ宣言を追加する。 bool isKeysUp(uint32); bool isKeysDown(uint32); bool isKeysHeld(uint32); #ifdef __cplusplus } #endif #endif
inputSub.c
// TODO: ここに、このソースファイルが必要とする外部ヘッダファイルを記述する。 #include <nds/ndstypes.h> #include <nds/arm9/input.h> // TODO: ここにプロトタイプ宣言した関数のコードを記述する。 bool isKeysUp(uint32 keypad_bits) { if(keysUp() & keypad_bits) return true; return false; } bool isKeysDown(uint32 keypad_bits) { if(keysDown() & keypad_bits) return true; return false; } bool isKeysHeld(uint32 keypad_bits) { if(keysHeld() & keypad_bits) return true; return false; }
んでテストコード。
大して面白くもないコードなんで続きを読むにしときま。
inputSub lib test.
//--------------------------------------------------------------------------------- // // TITLE : inputSub lib test. // // DATE : Feb 14, 2009 // // COPYLIGHT : CODING BY. AYUMI.K @REGEKATSU // SDK : devkitPro Version 1.4.9 // // WEB SITE NAME : // REGEKATSU // -Console/Homebrew Programming- // // WEB SITE URL : // http://akiba.geocities.jp/consolehomebrewprogramming/ // //--------------------------------------------------------------------------------- #include <nds.h> #include <stdio.h> #include "inputSub.h" int main(void) { consoleDemoInit(); iprintf("inputSub lib test.\nFeb 14, 2009\nCODING BY. AYUMI.K @REGEKATSU\n\n"); while(1) { scanKeys(); if(isKeysDown(KEY_UP | KEY_DOWN)) iprintf("isKeysDown true\n"); else if(isKeysUp(KEY_LEFT | KEY_RIGHT)) iprintf("isKeysUp() true\n"); else if(isKeysHeld(KEY_START | KEY_SELECT)) iprintf("isKeysHeld() true\n"); swiWaitForVBlank(); } return 0; }