- ベストアンサー
あるタイミングでマウスボタンを離す。 離した時間差を計る。
こんにちは、 反射神経のゲームもどきを作ろうと考えています。 マウスを押しておき、タイミングが与えられて(T1) マウスを離した時間(T2)との時間差(T2-T1)を計りたいと思っています。 この場合に使う、イベントってなんなんでしょうか? また、何かヒントがありましたら教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
timeGetTime関数を使ってみてはどうでしょう。 以下にプログラム例を Private Declare Function timeGetTime Lib "winmm.dll" () As Long 'システムが起動してからの時間を取得する関数です。 Dim T1 as Long, T2 as Long Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim Rank as long '反応するまでにかかった時間(ms)を格納する変数です。 If Button <> vbLeftButton Then Exit Sub '左クリック以外を受け付けないように設定しています。そうなさらない場合はこの文は削除してもらってかまわないです。 T2 = timeGetTime() Rank = T2 - T1 'これ以降はそれに応じた処理を書きます。 End Sub T1を指定する方法は結構あります。一例としてCommand1ボタンを押してから5~10秒のランダムで取得した時間後に反射すべき事柄が現れるようにする方法は、Timer1コントロールを使うとすると Private Sub Command1_Click() Dim Sec as Integer Sec = 5 + Int(Rnd * 6) Timer1.Interval = Sec * 1000 End Sub Private Sub Timer1_Timer() 'ここに反射すべき事柄を書きます。 T1 = timeGetTime() End Sub こんな感じでしょうか。
その他の回答 (2)
- mld_sakura
- ベストアンサー率20% (264/1282)
簡単に説明しますが・・・ (1)「MouseDown」イベントでTimeよりシリアル値を取得 (2)「MouseUp」イベントで同様にTimeよりシリアル値を取得 (3)上記(2)から(1)の差分を計算 という感じですね。 やってみてください。
- taknt
- ベストアンサー率19% (1556/7783)
Formのマウスのクリックイベントとかでしょうね。