scanfなどを使って入力を行うときに、入力した後にエンターキーを押してデータに反映されますよね。
入力したい値は、0もしくは1なのですが、ゲーム中に’B’ボタンを押したら入力させたいのですが、
入力を行うときには
「bbbbb」
というふうに入力するときにすでにBボタンの残骸が入力される状態です。
一度「BackSpace」を押して全部消せばいいのですが、せめて入力のときに
「b」
というふうに一つしか入力できなくできないでしょうか?
よろしくお願いします。
入力について
Re:入力について
少し違いますがこんな感じです。
<tt>
char a;
if(gl_getkeystate('B')<0){//Bボタンが押されているなら
while(gl_getkeystate('B')<0);//ボタンを離すまで待機
printf("ダンジョンの最初に\n"
"戻る:0 戻らない:1---");
scanf("%c",&a);
if(a=='0')break;//ダンジョンから抜ける。
else printf("キャンセルしました。\n");
}
</tt>
こんな感じでした。
ただscanf文を処理するときには、入力画面に「bbbb」と入ってしまっています。
scanfで なくてもいいので、入力画面のときに「b」でこれ以上入力してもバックスペースを押さない限り
入力できなくしたいのです。
注意:
gl_getkeystateはボタンが押されているかの判定ができる関数?です。
<tt>
char a;
if(gl_getkeystate('B')<0){//Bボタンが押されているなら
while(gl_getkeystate('B')<0);//ボタンを離すまで待機
printf("ダンジョンの最初に\n"
"戻る:0 戻らない:1---");
scanf("%c",&a);
if(a=='0')break;//ダンジョンから抜ける。
else printf("キャンセルしました。\n");
}
</tt>
こんな感じでした。
ただscanf文を処理するときには、入力画面に「bbbb」と入ってしまっています。
scanfで なくてもいいので、入力画面のときに「b」でこれ以上入力してもバックスペースを押さない限り
入力できなくしたいのです。
注意:
gl_getkeystateはボタンが押されているかの判定ができる関数?です。