DXライブラリを使ってゲームのメニュー画面を制作しています。
例えばスペースキーを押すことで、メニューが開くとします。
ここで、同じスペースキーでメニューを閉じる処理を行いたいのですが、
微小な時間単位でスペースキーの判定が行われてしまうため、メニューが開いたり閉じたりを高速で繰り返してしまいます。
項目の「閉じる」を選択することでメニューを閉じる処理もありますが、
使いやすくするために、同じキーでメニューを開いたり閉じたりすることも可能にしたいです。
メニューのフラグが0の時、フラグが1になり、メニューが開くという処理をしています。
初歩的なことですが、対処法をご存知の方、よろしくお願いします。
メニュー画面にて
Re: メニュー画面にて
この問題を解決するにはだいたい二種類の方法があります。
1つ目はキーの押されているフレーム数を記録する、
カウントが1の時が押された瞬間なのでそれを検知すればいいわけです。
2つ目は前フレームのキー状態を保存し、現在の状態と比較する、
前のフレームでは押されておらず、現在押されているならば押された瞬間ということになります。
これ自体よくある質問なので、過去トピックを上から探していけば類似したものが結構見つかります。
ついでに、一つ目の方式は
新ゲームプログラミングの館 2.9 全てのキーの入力状態を取得する
http://dixq.net/g/02_09.html
にサンプルプログラムが載っています。
1つ目はキーの押されているフレーム数を記録する、
カウントが1の時が押された瞬間なのでそれを検知すればいいわけです。
2つ目は前フレームのキー状態を保存し、現在の状態と比較する、
前のフレームでは押されておらず、現在押されているならば押された瞬間ということになります。
これ自体よくある質問なので、過去トピックを上から探していけば類似したものが結構見つかります。
ついでに、一つ目の方式は
新ゲームプログラミングの館 2.9 全てのキーの入力状態を取得する
http://dixq.net/g/02_09.html
にサンプルプログラムが載っています。