トップページ > 過去ログ > 記事閲覧
数字が一気に表示されるのですがひとつずつ表示したいです
名前:sen 日時: 2010/03/09 14:55

はじめまして、下記のソースなのですがそのまま実行してキーボードのAを押すとマル、バツ、サンカクと一気に表示されてしまいます。 私はマルが出ている時にキーボードのAを押すとバツが出てバツが出ている時にキーボードのAを押すとサンカクが表示されると思いましたが最初に書いた通り実際にはキーボードのAを押すとマル、バツ、サンカクが一気に表示されてしまいます。 2回目のKEY_INPUT_AをKEY_INPUT_Bに、3回目のKEY_INPUT_Cにすると一気には表示はされなくなりボタンに応じて1回ずつ表示されますがKEY_INPUT_Aで1回ずつ表示するようになるにはどうすれば良いのでしょうか?。 int i ; int color ; color = GetColor( 255 , 255 , 255 ) ; SetDrawScreen( DX_SCREEN_BACK ) ; // 1回目 for( i = 0 ; i < 200 ; i ++ ) { DrawString( 200 , 0 , "マル" , color ) ; ScreenFlip() ; if( CheckHitKey( KEY_INPUT_A ) == 1 ) break ; } // 2回目 for( i = 0 ; i < 200 ; i ++ ) { DrawString( 0 , 200 , "バツ" , color ) ; ScreenFlip() ; if( CheckHitKey( KEY_INPUT_A ) == 1 ) break ; } // 3回目 for( i = 0 ; i < 200 ; i ++ ) { DrawString( 200 , 200 , "サンカク" , color ) ; ScreenFlip() ; if( CheckHitKey( KEY_INPUT_A ) == 1 ) break ; }

Page: 1 |

Re: 数字が一気に表示されるのですがひとつずつ表示したいです ( No.1 )
名前:詩鳥 日時:2010/03/09 15:35

実装方法はたくさんありますので、 例えばこういう方法もある、という例として見てください、w キーを押す回数で表示内容を引継ぎではなく全部変えたい場合は、 caseに対して毎回breakを入れてみて下さい Escapeで終了します int color ; int KeyCount=0; bool KeyActionHistory=FALSE; color = GetColor( 255 , 255 , 255 ) ; SetDrawScreen( DX_SCREEN_BACK ) ; //ループ while(CheckHitKey(KEY_INPUT_ESCAPE)==FALSE){ //キー処理 if( CheckHitKey( KEY_INPUT_A ) == TRUE && KeyActionHistory==FALSE){ KeyActionHistory=TRUE; KeyCount++; } else if(CheckHitKey( KEY_INPUT_A ) == FALSE)KeyActionHistory=FALSE; //case番号が押した回数 switch(KeyCount){ case 3: DrawString( 200 , 200 , "サンカク" , color ) ; case 2: DrawString( 0 , 200 , "バツ" , color ) ; case 1: DrawString( 200 , 0 , "マル" , color ) ; case 0: break; } ScreenFlip(); }
Re: 数字が一気に表示されるのですがひとつずつ表示したいです ( No.2 )
名前:sen 日時:2010/03/09 17:50

例えをありがとうございます。 大変参考になりました!。 色々と応用して使用してみようと思います。

Page: 1 |