DirectXを使ってゲームを製作しているのですが、参考書などを見てもどうしても分からないので、質問させて頂きに参りました。
例えば、キーボードを押した時間を数値として取得して、その数値が○○以上○○以下だったらこういう処理をしたい、という場合、どういう命令を使用すればいいのでしょうか?
もしよろしかったらお願いします。
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
とかやればいいですね。
あ、そうそう、時間のことですね、
GetTickCountのAPIで、キーを押し始めたとき(KeyDown)の時間を取得します。
そしてキーを放したとき、(KeyUp)の時間を取得して、その差を計算すれば出来ます。
ただ、キーコードごとに時間を…となると、ちょっと面倒ですけど、基本はおんなじです。
返事遅れて申し訳ありません。
時間はかかりましたが、なんとか成功しました。
DirectXではif num>?? and num<?? Thenが使えないみたいなんですけど、何とか自分で考えてみます。
ありがとうございました。
ツイート | ![]() |