VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/07/21(Sat) 08:28
投稿者tea
Eメール
URL
タイトル時間待機中にカウントがあった場合のコードの記述を教えてください。

前回の投稿でGetTickCountを使うことで時間を待機させる方法が理解できた
のですが、新たな問題が出てきました。

ゲームタイムが00:00秒になった場合にGetTickCountで00:00秒を5秒間待
機させて、その5秒間の間にファウルがなかった(回数 0)場合には、その
まま次のゲームタイムを表示させる。
ファウルが1回だけあった場合にはゲームタイムを00:01に戻してゲームタ
イムを再開する。
というように動作させたいのですが、うまくいきません・・・。

下記のコードではFor〜Next文があるために繰り返し処理を行ってしまいファ
ウルが1回カウントされた後も繰り返し処理が行われCase 1を実行した後に
Case 0も実行してしまうために思うような動作とはなりません。
どうか教えてください。

visual Basic 中学校の掲示板にも以下のコードとは若干違う質問をしていま
すが、解決した場合にはそちらにも報告を必ず行いますのでご理解ください。
よろしくお願いします。

'GetTickCount(待機時間)のコード
Private Function Delay(ByVal t As Long)
Dim At_0 As Long, At_1 As Long
  At_0 = GetTickCount
  At_1 = At_0
  While ((At_1 - At_0) < t)
    At_1 = GetTickCount
    DoEvents
  Wend
End Function

'ゲームタイムが0秒になった場合
If vsGameTime.Value = 0 Then
    'ブザー音
    BeepBuzzer2
           'ブザービーターに備えて00:00秒のまま5秒間待機させる。
            Delay 5000
            
      'チームA&B
            For l = 0 To 1
            'プレイヤーは5名
            For k = 1 To 5
                '5秒間の待機中にファウルがカウントされなかったら抜ける。
        'ファウルが1回カウントされた場合には時間を1秒戻して、
        '再度00:01からタイマーを再開する。
                Select Case Game.Team(l).Player(k).FoulCount
                
                Case 0
                    Exit For
                    Exit For
                    
                Case 1
                    'タイマー
          vsGameTime.Enabled = True
                    '1秒加える。
          vsGameTime.Value = 1
          ゲームスタートボタンを非表示にする。
                    cmdGameStart.Enabled = False
          '再開ボタンを表示する。
                    cmdGamePause.Enabled = True
                    
                    
                End Select
                      
            Next
            Next
            
      'タイマーを停止。
            tmrCountDown.Enabled = False
      '次のクォーター表示へ進む。
            readyNextQuarter
End if


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -