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

解決


Hobby  2001-10-31 23:43:27  No: 75005  IP: [192.*.*.*]

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

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

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

編集    削除
たかみちえ  2001-11-01 01:04:45  No: 75006  IP: [192.*.*.*]

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  IP: [192.*.*.*]

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

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

編集    削除
Hobby  2001-11-08 00:26:42  No: 75008  IP: [192.*.*.*]

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

編集    削除