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

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

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

#1

投稿記事 by fey » 15年前

移動とかでも→キーを押している間進んだりするやり方はできるのですが、

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

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

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

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

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

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

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

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

#2

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

ここのサイトの
「C言語~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
に隅から隅まで理解されることをお勧めします。

ちなみに問題の件は、「40a. キーがどれ位押されたかを監視する関数」
http://dixq.net/g/41.html
の応用だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Tatu
記事: 445
登録日時: 15年前
住所: 北海道

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

#3

投稿記事 by Tatu » 15年前

ゲームプログラミングの館を理解していれば、1秒以上キーを押し続けても
1秒しか攻撃を出さないようにする方法はわかるでしょう。

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

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

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

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

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

閉鎖

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