トップページ > 過去ログ > 記事閲覧
whileの中のキー入力が出来ない
名前:PNG人 日時: 2006/11/10 16:33

while文のなかにキー入力を入れたのですが、 受け付けてくれません。 サンプル #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ////////////////////////////////////////////////////////////// // // // 画面サイズ変更(800×600の16Bitのウインドウモード) // // // ////////////////////////////////////////////////////////////// SetGraphMode( 800 , 600 , 16 ) ; ////////////////////////////////////////////////////////////// // ウインドウモードに変更 ChangeWindowMode( TRUE ) ; //透過色の指定 if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } //透過色の指定 SetTransColor(0,255,0); //右からR,G,B int GHandle ; int Meter ; int Ber ; int i; int End; int Key; GHandle = LoadGraph( "kyara\\test2.jpg" ) ; Meter = LoadGraph( "kyara\\Meter.bmp" ) ; Ber = LoadGraph( "kyara\\Ber.bmp" ) ; SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先画面を裏にする End = 0; i = 0; while( End == 1 ){ //i++; Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); if(Key & PAD_INPUT_RIGHT) i += 5; if(Key & PAD_INPUT_LEFT) i -= 5; if(Key & PAD_INPUT_LEFT) End = 1; ClearDrawScreen() ; DrawGraph( 1 , 0 , GHandle , TRUE ) ; //画像を表示 DrawGraph( 320 , 450 , Meter , TRUE ) ; //メーターを表示 DrawRotaGraph2( 400 , 550 , 80 , 95 , 1 , i , Ber , TRUE ); //↑バーの表示 DrawFormatString( 0,0,GetColor(255,255,255),"%d",i); ScreenFlip() ; // 裏画面の内容を表画面に反映します } DxLib_End(); // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } while()の()の中を i ==100 にし、 while内の //i++; の//をはずすと 画像はちゃんと回転し、終了してくれるので キー入力がおかしいのはわかったのですが…… すみません、連続投稿になってしまいましたが よろしくお願いします

Page: 1 |

Re: whileの中のキー入力が出来ない ( No.1 )
名前:Will 日時:2006/11/10 16:58

「GetJoypadInputState関数」トピックスに同じ質問があり、そこに解答が書かれています。 ProcessMessage関数がコールされていないことが原因です。
Re: whileの中のキー入力が出来ない ( No.2 )
名前:お父さん 日時:2006/11/10 17:00

whileの中にProcessMessage()==0が入ってないからではないでしょうか。私も先日同様のことで悩みましたが while(ProcessMessage()==0) とするとキー入力ができるようになりました。 間違っているかもしれませんが一度お試しになってください。
Re: whileの中のキー入力が出来ない ( No.3 )
名前:PNG人 日時:2006/11/10 19:36

解決できましたw。 お父さんの言うとおりでした。 ありがとうございます

Page: 1 |