キーの二度押し(?)の質問
Posted: 2008年7月08日(火) 16:11
ノベル風のゲームを作ろうとしているのですが、詰まったところがあったので質問させていただきます。
とりあえず、『タイトル画面でEnterを押したらマップ画面に入り、そこで場所を選んでもう一度Enterを押し
たら選んだ場所の背景画面が表示される』という風にしようと思っているのですが、最初のタイトルでEnterを
押しただけでマップ画面を飛ばして背景画面に飛んでしまいます。以下がそのプログラムです。
と、こんな感じなのですが、原因は自分でもなんとなく解ります。タイトルでのEnterがマップ画面でも反映
されているんだろうなとは思うのですが、どう Key[KEY_INPUT_RETURN] を 0 に戻せばいいのかが解りません。
途中で Key[KEY_INPUT_RETURN] = 0 とすればいいのかなーなどと思っていたのですが、そうしたらマップ画面
Enterを押しても反応しなくなりました。どうしたらタイトル画面とマップ画面の間で Key[KEY_INPUT_RETURN]
を 0に戻せるのでしょうか?
あと、プログラム自体へのアドバイスなども下されば嬉しいです。説明が下手で長い文章になってすみません。
よろしくお願いします。
とりあえず、『タイトル画面でEnterを押したらマップ画面に入り、そこで場所を選んでもう一度Enterを押し
たら選んだ場所の背景画面が表示される』という風にしようと思っているのですが、最初のタイトルでEnterを
押しただけでマップ画面を飛ばして背景画面に飛んでしまいます。以下がそのプログラムです。
if(a == 0){ DrawGraph(0,0,Title_Gr_Handle,FALSE); //タイトル表示 if(b == 0){ DrawGraph(310,275,Yajirusi_Gr_Handle,TRUE); //ゲーム開始か終了を選ぶ矢印 if(Key[KEY_INPUT_RETURN] == 1){ a = 1; //マップ画面へ b = 0; } } if(Key[KEY_INPUT_DOWN] == 1 || b != 0){ DrawGraph(310, 400,Yajirusi_Gr_Handle,TRUE); //矢印表示 b = 1; if(Key[KEY_INPUT_RETURN] == 1) break; else if(Key[KEY_INPUT_UP] == 1) b = 0; } } if(a == 1){ DrawGraph(0,0,Map_Gr_Handle,FALSE); if(b == 0){ DrawGraph(200, 50,Yajirusi_Gr_Handle,TRUE); if(Key[KEY_INPUT_DOWN] == 1) b = 1; else if(Key[KEY_INPUT_LEFT] == 1) b = 2; else if(Key[KEY_INPUT_RIGHT] == 1) b = 3; else if(Key[KEY_INPUT_RETURN] == 1) a = 2; //背景画面へ }
と、こんな感じなのですが、原因は自分でもなんとなく解ります。タイトルでのEnterがマップ画面でも反映
されているんだろうなとは思うのですが、どう Key[KEY_INPUT_RETURN] を 0 に戻せばいいのかが解りません。
途中で Key[KEY_INPUT_RETURN] = 0 とすればいいのかなーなどと思っていたのですが、そうしたらマップ画面
Enterを押しても反応しなくなりました。どうしたらタイトル画面とマップ画面の間で Key[KEY_INPUT_RETURN]
を 0に戻せるのでしょうか?
あと、プログラム自体へのアドバイスなども下されば嬉しいです。説明が下手で長い文章になってすみません。
よろしくお願いします。