ページ 11

CheckHitKeyでの判定

Posted: 2009年5月30日(土) 20:33
by tex
CheckHitKeyでキー判定をし、キーが押されていれば、文字を出力させます。
キーをずっと押していなければ、文字は消えてしまいます。
キーを押したあと、ずっと表示させていたいんですが、どうすればいいですか?
できれば、WaitKeyとかWaitTimerを使わない方法がいいです。
お願いします。

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 20:48
by チルチル
どういう場面かによりますが
キーが押されたらフラグか何かを立てれば良いんじゃないでしょうか?

画面を更新しないという方法もありますが・・

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 20:56
by tex
while(CheckHitKey(KEY_INPUT_ESCAPE) == 0){
if(state == 0){
DrawString(0, 0, "ABC", white);
if(CheckHitKey(KEY_INPUT_RETURN)) state++;
}
if(state == 1){
DrawString(0, 20, "abc", white);
}
}

という風になっているとしたら、どうすればいいのでしょう?
あと、フラグを立てるというのはどういうことですか?
よろしくお願いします。

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 21:09
by チルチル
「スイッチを入れる」みたいな感じでしょうかね・・

キーが押されたらスイッチを入れて
スイッチが入っていたら表示するみたいな感じです

見た感じstate変数がフラグの役割をしているように見えるんですが
最初state変数が0として、0の場合キーが押されたらインクリメントして1になる場合
それ以降は表示する方にしか処理が行かないので、これで完成しているように見えますが?

実際はstateがどこかで0になってたりするんですか?

whiteは色コードですよね?

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 21:35
by tex
すみません。
whileの前に
int white = GetColor(255, 255, 255);
int state = 0;
というのを書き忘れました。

if(state == 1)のあとに表示される文字が、エンターを押しているときは表示されて、エンターを離すと消えてしまいます。
どうしてでしょう?

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 21:59
by チルチル
う~ん実行してみましたがちゃんと動きますね・・

whileの前ですよね、中ではないんですよね?

短いコードなら、ちょっと全部書いてくれませんか?

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 22:23
by tex
チルチルさん、すみませんでした。
自分のちょっとした間違いでした。
本当にすみませんでした。

Re:CheckHitKeyでの判定

Posted: 2009年5月30日(土) 22:34
by チルチル
あっそうですか、解決してよかったです