トップページ > 過去ログ > 記事閲覧
GetJoypadInputState時のテンキー入力の挙動
名前:SmokingWOLF 日時: 2008/11/08 15:37

DXライブラリにいつもお世話になっております。 GetJoypadInputStateを利用したテンキーによる方向キー操作で、 特定の入力を行うとキーが入りっぱなしになる現象を確認いたしましたので ご報告させていただきます。 再現方法は、 1.例えば if(GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_UP)  によるキー入力を受け付け処理を行っている状態で 2.Shiftキーとテンキーの上キー(8)を同時にちょんと押す。  (両方押しっぱなしの状態から同時に離す、の方が正確かもしれません) 3.するとまれに、キーボードを触っていなくても、以降ずっと1.の条件文でtrueが返ってくるようになる というものです。この現象は上下左右(8,2,4,6)、どのテンキーでも確認することができました。 Shiftと矢印キーの組み合わせでは発生しません、テンキーのみのようです。 使用したライブラリはVer2.25です。 再現に使用したソースコードは以下の通りです。 タイミングよくテンキー+Shiftを押すと入力が1になったままになります。 if( DxLib_Init() == -1 ){return -1;} SetDrawScreen(DX_SCREEN_BACK); int KeyUp,KeyDown,KeyLeft,KeyRight; while(ProcessMessage()==0){ KeyUp = KeyDown = KeyLeft = KeyRight = 0; // 4方向キーの入力状態を取得する if((GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_UP)){ KeyUp = 1;} if((GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_DOWN)){ KeyDown = 1;} if((GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_LEFT)){ KeyLeft = 1; } if((GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_RIGHT)){ KeyRight = 1;} // Zキーが押されたら終了する if((GetJoypadInputState(DX_INPUT_KEY_PAD1) & PAD_INPUT_A)){ break;} ClearDrawScreen(); DrawFormatString(0,0,GetColor(255,255,255),"Up %d Down %d Left %d Right%d",KeyUp,KeyDown,KeyLeft,KeyRight); ScreenFlip(); WaitTimer(16); } DxLib_End() ;

Page: 1 |

Re: GetJoypadInputState時のテンキー入力の挙動 ( No.1 )
名前:管理人 日時:2008/11/10 01:32

ご報告ありがとうございます 修正版をアップしましたので、もし必要でしたらお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)

Page: 1 |