CheckHitKeyでの判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tex

CheckHitKeyでの判定

#1

投稿記事 by tex » 16年前

CheckHitKeyでキー判定をし、キーが押されていれば、文字を出力させます。
キーをずっと押していなければ、文字は消えてしまいます。
キーを押したあと、ずっと表示させていたいんですが、どうすればいいですか?
できれば、WaitKeyとかWaitTimerを使わない方法がいいです。
お願いします。

チルチル

Re:CheckHitKeyでの判定

#2

投稿記事 by チルチル » 16年前

どういう場面かによりますが
キーが押されたらフラグか何かを立てれば良いんじゃないでしょうか?

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

tex

Re:CheckHitKeyでの判定

#3

投稿記事 by tex » 16年前

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での判定

#4

投稿記事 by チルチル » 16年前

「スイッチを入れる」みたいな感じでしょうかね・・

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

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

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

whiteは色コードですよね?

tex

Re:CheckHitKeyでの判定

#5

投稿記事 by tex » 16年前

すみません。
whileの前に
int white = GetColor(255, 255, 255);
int state = 0;
というのを書き忘れました。

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

チルチル

Re:CheckHitKeyでの判定

#6

投稿記事 by チルチル » 16年前

う~ん実行してみましたがちゃんと動きますね・・

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

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

tex

Re:CheckHitKeyでの判定

#7

投稿記事 by tex » 16年前

チルチルさん、すみませんでした。
自分のちょっとした間違いでした。
本当にすみませんでした。

チルチル

Re:CheckHitKeyでの判定

#8

投稿記事 by チルチル » 16年前

あっそうですか、解決してよかったです

閉鎖

“C言語何でも質問掲示板” へ戻る