メニュー画面にて

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

メニュー画面にて

#1

投稿記事 by kyonsy » 7年前

DXライブラリを使ってゲームのメニュー画面を制作しています。

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

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

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

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

nil
記事: 428
登録日時: 8年前

Re: メニュー画面にて

#2

投稿記事 by nil » 7年前

この問題を解決するにはだいたい二種類の方法があります。
1つ目はキーの押されているフレーム数を記録する、
カウントが1の時が押された瞬間なのでそれを検知すればいいわけです。

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

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

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

kyonsy

#3

投稿記事 by kyonsy » 7年前

回答ありがとうございます
まだ解決にはいたっていませんが、方法は見えて来ました
本当にありがとうございました

kyonsy

#4

投稿記事 by kyonsy » 7年前

回答ありがとうございます
まだ解決にはいたっていませんが、方法は見えて来ました
本当にありがとうございました

閉鎖

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