環境はwindows7, visual 2010 C++, DXライブラリです。
ゲームのタイトル画面を作っているのですが、このタイトル画面だけがキーエッジ関数(キーが押された瞬間を検出する)、が反応しません
他のシーケンス、ゲームメインなどではちゃんと関数は動作してくれました。
以下、ソースコードです
グローバル変数
int NowKey; //現在のキー
int OldKey; //前回のキー
int KeyFlag; //キーエッジ検出フラグ
/****************************************************************
*title();
*タイトル描画関数
*戻り値:なし、引数:なし
*****************************************************************/
void title(){
int Posy;
static int MenuNumber = 0;
if(Key(buf[KEY_INPUT_DOWN])){
if(++MenuNumber > 1) MenuNumber = 0;
}
if(Key(buf[KEY_INPUT_UP])){
if(--MenuNumber < 0) MenuNumber = 1;
}
// 文字列の描画
DrawString( 250 , 240 - 72 , "title" , 0xffffff );
DrawString( 250 , 240 - 52 , "GAMESTRAT" , 0xffffff );
DrawString( 250 , 240 - 32 , "END" , 0xffffff );
Posy = MenuNumber*30;
DrawTriangle(150,165+Posy,200,195+Posy,150,225+Posy,0xffffff,TRUE);
ghum = 0;
if(Key(buf[KEY_INPUT_RETURN])) gGameMode = 1;
}
/****************************************************************
*Key(int keyinput);
*キーエッジ検出関数
*戻り値:整数型、引数:int keyinput
*****************************************************************/
const int Key(int keyinput){
// キー入力取得
OldKey = NowKey ;
NowKey = keyinput;
KeyFlag = NowKey & ~OldKey;
return KeyFlag;
}
キーエッジ関数は働かなくなるようです。
ですがどうしては分かりませんでした
説明不足な点がありましたら、追加で説明させていただきます
是非ともご教授よろしくお願いします。