キーボードを押した時間を取得するには?

解決


Hobby  2001-10-31 23:43:27  No: 75005

DirectXを使ってゲームを製作しているのですが、参考書などを見てもどうしても分からないので、質問させて頂きに参りました。

例えば、キーボードを押した時間を数値として取得して、その数値が○○以上○○以下だったらこういう処理をしたい、という場合、どういう命令を使用すればいいのでしょうか?

もしよろしかったらお願いします。


たかみちえ  2001-11-01 01:04:45  No: 75006

DirectXでもたぶんプログラム手順はおんなじ…。
だと思うので、if num>?? and num<?? Then でいいでしょう。

  けど、それを何回とやると面倒ですよね、
ミリ秒単位で遅れは出るかもしれませんけど、関数かしてみるといいかも。
Public Function ifLU(Expression As Long, Lower As Long, Upper As Long) As Boolean
    If Expression >= Lower And Expression <= Upper Then ifLU = True: Exit Function
End Function
Expressionに対象の数値、Lowerは??以上の?、Upperは??以下の?
対象のKeyDownイベントで、
ifLU(Keycode,vbKey1,vbKey9)  'キーコードが1キーから9キーまでだったらtrue
  とかやればいいですね。


たかみちえ  2001-11-01 01:08:44  No: 75007

あ、そうそう、時間のことですね、
  GetTickCountのAPIで、キーを押し始めたとき(KeyDown)の時間を取得します。
そしてキーを放したとき、(KeyUp)の時間を取得して、その差を計算すれば出来ます。

ただ、キーコードごとに時間を…となると、ちょっと面倒ですけど、基本はおんなじです。


Hobby  2001-11-08 00:26:42  No: 75008

返事遅れて申し訳ありません。
時間はかかりましたが、なんとか成功しました。
DirectXではif num>?? and num<?? Thenが使えないみたいなんですけど、何とか自分で考えてみます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加