ページ 11

DXライブラリのキー入力処理で...

Posted: 2011年2月25日(金) 17:15
by fey
移動とかでも→キーを押している間進んだりするやり方はできるのですが、

それを応用して攻撃をつくろうと思っているのですが、

押している間ずっと攻撃してしまいます。

1回の入力で何秒押していても1秒だけ実行される(押しなおすとまた1秒)、

このようなものはどのようにすればできるのでしょうか?

分かりにくい説明ですいません。

もし説明不足なら質問していただけると答えさせていただきますので、お願いします。

Re: DXライブラリのキー入力処理で...

Posted: 2011年2月25日(金) 17:22
by softya(ソフト屋)
ここのサイトの
「C言語~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
に隅から隅まで理解されることをお勧めします。

ちなみに問題の件は、「40a. キーがどれ位押されたかを監視する関数」
http://dixq.net/g/41.html
の応用だと思います。

Re: DXライブラリのキー入力処理で...

Posted: 2011年2月25日(金) 17:49
by Tatu
ゲームプログラミングの館を理解していれば、1秒以上キーを押し続けても
1秒しか攻撃を出さないようにする方法はわかるでしょう。

もし、キーを押す時間が1秒未満でも攻撃が1秒続くようにしたいというのであれば
こういうやり方はどうでしょうか?

(1)攻撃カウントと攻撃フラグを用意する。
フラグは0だと攻撃していない。1だと攻撃している状態を表すことにする。

(2)キーが押された瞬間に攻撃可能な状態(ここではフラグが0)であれば
攻撃フラグを1とし、攻撃カウントを0とする。

(3)攻撃中(フラグが1)であれば攻撃カウントを増やし、攻撃の処理を行う。

(4)攻撃カウントがある値(60FPSで攻撃時間が1秒なら60)になったら攻撃フラグを0とし、攻撃を止める