ページ 11

メニュー画面にて

Posted: 2013年4月28日(日) 19:38
by kyonsy
DXライブラリを使ってゲームのメニュー画面を制作しています。

例えばスペースキーを押すことで、メニューが開くとします。
ここで、同じスペースキーでメニューを閉じる処理を行いたいのですが、
微小な時間単位でスペースキーの判定が行われてしまうため、メニューが開いたり閉じたりを高速で繰り返してしまいます。

項目の「閉じる」を選択することでメニューを閉じる処理もありますが、
使いやすくするために、同じキーでメニューを開いたり閉じたりすることも可能にしたいです。

メニューのフラグが0の時、フラグが1になり、メニューが開くという処理をしています。

初歩的なことですが、対処法をご存知の方、よろしくお願いします。

Re: メニュー画面にて

Posted: 2013年4月28日(日) 19:51
by nil
この問題を解決するにはだいたい二種類の方法があります。
1つ目はキーの押されているフレーム数を記録する、
カウントが1の時が押された瞬間なのでそれを検知すればいいわけです。

2つ目は前フレームのキー状態を保存し、現在の状態と比較する、
前のフレームでは押されておらず、現在押されているならば押された瞬間ということになります。

これ自体よくある質問なので、過去トピックを上から探していけば類似したものが結構見つかります。

ついでに、一つ目の方式は
新ゲームプログラミングの館 2.9 全てのキーの入力状態を取得する
http://dixq.net/g/02_09.html
にサンプルプログラムが載っています。

Posted: 2013年4月28日(日) 20:39
by kyonsy
回答ありがとうございます
まだ解決にはいたっていませんが、方法は見えて来ました
本当にありがとうございました

Posted: 2013年4月28日(日) 20:40
by kyonsy
回答ありがとうございます
まだ解決にはいたっていませんが、方法は見えて来ました
本当にありがとうございました