トップページ > 過去ログ > 記事閲覧
^キーの入力を受け付けない?
名前:イトケン 日時: 2011/05/31 08:32

キーボードの入力ですが、 -と\の間の^のキーの入力を取得することができないです。 他のゲームでは^キーは正常に使用できますので、キーボードの異常ではなさそうです。

Page: 1 |

Re: ^キーの入力を受け付けない? ( No.1 )
名前:クラスクラス 日時:2011/05/31 11:32

こちらでは、下記プログラムで問題なくキー入力できました。 お試しください。 キーを押している間表示されます。 複数キーを押すと、重ねて表示されます。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( true ); char KeyBuf[ 256 ] ; char wstr[ 500 ]; // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; SetSysCommandOffFlag( TRUE ) ; // 無限ループ while( 1 ) { // Windows 依存のメッセージ処理を行う if( ProcessMessage() == -1 ) break ; ClearDrawScreen() ; // すべてのキーの状態を得る GetHitKeyStateAll( KeyBuf ) ; for(int i=0;i<256;i++) { if(KeyBuf[ i ] != 0) { sprintf_s(wstr,490,"きーNO %d の状態 = %d",i,KeyBuf[ i ]); DrawString( 0 , 20 , wstr, GetColor( 255 , 255 , 255 ) ) ; } } // 裏画面の内容を表画面に反映させる ScreenFlip() ; } // DXライブラリ使用の終了処理 DxLib_End() ; // ソフトの終了 return 0 ; }
Re: ^キーの入力を受け付けない? ( No.2 )
名前:イトケン 日時:2011/05/31 18:01

クラスクラスさん、返信ありがとうございます。 上記プラグラムで実行してみました。 こちらの環境では、^キーを入力しても何も表示されなかったです。 ちなみにOSはWindows7です。 WindowsXPの頃は、DxLibで作ったプログラムは、^キーは使用できてました。 今後キーボードを変えて、調べてみます。
Re: ^キーの入力を受け付けない? ( No.3 )
名前:いっち 日時:2011/05/31 19:49

DxLib_Init の前で SetUseDirectInputFlag を TRUE に設定した場合どのような動作になりますでしょうか?
Re: ^キーの入力を受け付けない? ( No.4 )
名前:イトケン 日時:2011/06/01 06:26

いっちさん、返信ありがとうございます。 SetUseDirectInputFlagをTRUEにしたら、\キーを取得することができました。 解決できました。 ありがとうございます。
Re: ^キーの入力を受け付けない? ( No.5 )
名前:いっち 日時:2011/06/01 12:59

あれ?\キー?^キー? どちらにしても SetUseDirectInputFlag が FALSE の場合だけ特定のキーが取得できないというのであれば、 それはちょっとバグっぽいので、管理人さんの見解をお待ちいただくのが宜しいかと思います。
管理人さんへ ( No.6 )
名前:イトケン(解決 管理人さんへ) 日時:2011/06/02 05:17

すみません。\キーではなく、^キーが取得できないです。 無事、そのコードを入力して解決しました。 管理人さんへ いちおう原因特定のお助けになれればいいかなと思いまして、状況をお伝えします。 2007年ぐらいのDXライブラリで作っていたゲームプログラムでしたが、その頃は、問題なく^キーは取得できてました。 ちなみに当初の環境は OS:WindowsXP DirectX:覚えてないですが、9だったと思います。 開発言語:VC++6.0 でした。 今の環境 OS:Windows7 DirectX:11 開発言語:VC++2005 に変わってから、そのゲームプログラムは動作できなくて(画面がちらつく、動作が異常に遅い等)DXライブラリを最新のDirectX9版に変えました。 特にプログラムソースはいじってないです。 ^キーが押される取得には、GetHitKeyStateAllで「KEY_INPUT_PREVTRACK」と判定してます。 そしたら、正常に動作するようになって、良かったのですが、^キーが反応しないなぁって気づきました。 以上、状況報告です。
Re: ^キーの入力を受け付けない? ( No.7 )
名前:管理人 日時:2011/06/04 22:25

ご報告ありがとうございます すいません、Windows7 で SetUseDirectInputFlag( FALSE ) をしていないと ^キーの状態が取得できないのはDXライブラリのバグです 既に SetUseDirectInputFlag( FALSE ) を使うことで解決されていますが、 修正版をアップしましたので、もしご必要でしたらダウンロードしてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Gnu C++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)

Page: 1 |