ボタンの入力

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

ボタンの入力

#1

投稿記事 by わからんこ » 12年前

http://www.nicovideo.jp/watch/sm8331341

この動画のようにデバックを表示させたいのですが、

一回目のボタン入力でデバック表示、
二回目のボタン入力でデバックを消す

この様な動作を実現する際、私はボタンが入力された際、

カウントする変数をつくり、変数ごとに処理をわけました。

しかし、いちフレームで一回カウント変数に数値が加算されるために

うまくいきません。

このような、稚拙な質問ですいませんが、ご回答おねがいします

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

Re: ボタンの入力

#2

投稿記事 by nil » 12年前

何がどのようにうまくいかないのかを具体的に説明してください

また、ボタンとはキーボード入力ということでいいですか?

わからんこ

Re: ボタンの入力

#3

投稿記事 by わからんこ » 12年前

すいません。説明不足でした。

キーボード入力なのですが、

一度ボタンを押すとデバックが消えたり、ついたりします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: ボタンの入力

#4

投稿記事 by softya(ソフト屋) » 12年前

前の質問を放置しないようにお願いします。
http://dixq.net/forum/viewtopic.php?f=3&t=10727#p86537
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: ボタンの入力

#5

投稿記事 by nil » 12年前

まず、DXライブラリを使っているのであれば、
例えばキーの入力を返す関数CheckHitKey等は
押されている間ずっと1を返します。
なので、
if( CheckHitKey( KEY_INPUT_~~~ ) == 1 )
のような分岐を作った場合、その中身は押されている間毎フレーム実行されてしまいます

これを回避する方法は主に2つあり、
①前のフレームでキーが押されて無く、かつそのフレームでキーが押されているときにのみ1を返す関数を作る
②何フレームきーが連続で入力されているかを返す関数を作る
です

前述のCheckHitKeyの代わりにその関数を呼び出せばいいのです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: ボタンの入力

#6

投稿記事 by softya(ソフト屋) » 12年前

こちらで用意されたような関数を使えば押された直後だけに反応できますよ。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/02_09.html

ゲームプログラミングの館は役に立つ情報が色々あるので、全部目を通された方が良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

わからんこ

Re: ボタンの入力

#7

投稿記事 by わからんこ » 12年前

ありがとうございます。

一応全部読んだのですが、まだまだ勉強不足でした。

ご回答ありがとうございました。

次からは解決、忘れないないよう気をつけます。

閉鎖

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