移動とかでも→キーを押している間進んだりするやり方はできるのですが、
それを応用して攻撃をつくろうと思っているのですが、
押している間ずっと攻撃してしまいます。
1回の入力で何秒押していても1秒だけ実行される(押しなおすとまた1秒)、
このようなものはどのようにすればできるのでしょうか?
分かりにくい説明ですいません。
もし説明不足なら質問していただけると答えさせていただきますので、お願いします。
DXライブラリのキー入力処理で...
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリのキー入力処理で...
ここのサイトの
「C言語~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
に隅から隅まで理解されることをお勧めします。
ちなみに問題の件は、「40a. キーがどれ位押されたかを監視する関数」
http://dixq.net/g/41.html
の応用だと思います。
「C言語~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
に隅から隅まで理解されることをお勧めします。
ちなみに問題の件は、「40a. キーがどれ位押されたかを監視する関数」
http://dixq.net/g/41.html
の応用だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリのキー入力処理で...
ゲームプログラミングの館を理解していれば、1秒以上キーを押し続けても
1秒しか攻撃を出さないようにする方法はわかるでしょう。
もし、キーを押す時間が1秒未満でも攻撃が1秒続くようにしたいというのであれば
こういうやり方はどうでしょうか?
(1)攻撃カウントと攻撃フラグを用意する。
フラグは0だと攻撃していない。1だと攻撃している状態を表すことにする。
(2)キーが押された瞬間に攻撃可能な状態(ここではフラグが0)であれば
攻撃フラグを1とし、攻撃カウントを0とする。
(3)攻撃中(フラグが1)であれば攻撃カウントを増やし、攻撃の処理を行う。
(4)攻撃カウントがある値(60FPSで攻撃時間が1秒なら60)になったら攻撃フラグを0とし、攻撃を止める
1秒しか攻撃を出さないようにする方法はわかるでしょう。
もし、キーを押す時間が1秒未満でも攻撃が1秒続くようにしたいというのであれば
こういうやり方はどうでしょうか?
(1)攻撃カウントと攻撃フラグを用意する。
フラグは0だと攻撃していない。1だと攻撃している状態を表すことにする。
(2)キーが押された瞬間に攻撃可能な状態(ここではフラグが0)であれば
攻撃フラグを1とし、攻撃カウントを0とする。
(3)攻撃中(フラグが1)であれば攻撃カウントを増やし、攻撃の処理を行う。
(4)攻撃カウントがある値(60FPSで攻撃時間が1秒なら60)になったら攻撃フラグを0とし、攻撃を止める