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

投稿日: 2007/07/22(Sun) 13:19
投稿者tea
Eメール
URL
タイトル前回の投稿では解決していませんでした・・・。

またよろしくお願いします。どうも解決してなかったみたいです・・・。

タイマーが00:00秒になった直後からタイマーを5秒間待機させて、その間に
プレイヤーが1回だけファウルカウントされた場合にゲームタイマーを1秒戻
して00:01から再開してカウントダウンさせて再度00:00秒になったら次の
クォーター(時間)移動へしたいのです。

しかし、以下のコードではタイマーを5秒間待機させている最中にファウルカ
ウントが1回あっても何事もなかったように次のクォーターへと進んでしまい
ます。

If vsGameTime.Value = 0 Thenが2回記述されているのが問題なんでしょうか?
1秒戻した後のカウントダウンで00:00秒になった場合にブザー音のコードに
は記述していないのにブザー音がなるのも何故なのか?わかりません。

ブレークポイントなどを使って順を追ってコードを見てもわかりませんでした。
どうか教えてください。
よろしくお願いします。

'タイマー'
Private Sub tmrCountDown_Timer()
Dim i As Integer
Dim l As Integer
Dim k As Integer

    If mp.TimeOutting Then
        '' 更新と終了判断。
        With vsTimeOut(mp.TimeOutintgTeamIndex)
            .Value = .Value - 1
            '50秒経過後のブザー'
            If .Value = 10 Then
                BeepBusy
            End If
            If .Value <> 0 Then Exit Sub
        End With
        
        '' タイムアウトの終了。
        '60秒経過後のブザー'
        BeepBusy
        With mp
            .TimeOutting = False
            resetTimeOutClock .TimeOutintgTeamIndex
            cmdTimeOut(.TimeOutintgTeamIndex).Enabled = Game.Team(.TimeOutintgTeamIndex).CanCurrentQuarterTimeOut
            vsTimeOut(.TimeOutintgTeamIndex).Enabled = False
            tmrCountDown.Enabled = False
        End With
    Else
        '---オプションボタンで非表示を選択した場合---
        If vs24Second.Visible = False Then
            '---動作させない---
            vs24Second.Enabled = False
        Else
            '' 更新。
            With vs24Second
                If 0 < .Value Then
                    .Value = .Value - 1
                End If
            '残り5秒から1秒までNBA風にクロック音  '
                For i = 1 To 5
                    If .Value = i Then
                        Beep7
                    End If
                Next
            End With
        End If
        
        'ゲームタイムタイマー(カウントダウンタイマー)
        With vsGameTime
            If 0 < .Value Then
                .Value = .Value - 1
            End If
        End With
        
        '' クオーターの終了。
        ''  次のクオーターへ表示を更新して、停止。
        If vsGameTime.Value = 0 Then
            
            BeepBuzzer2
           '---ブザービーターに備えて5秒間遅らせる。----
            Delay 5000
            
            For l = 0 To 1
                For k = 1 To 5
                    'ゲームメンバーの誰かがファウルカウントされなかった場合
                    If Game.Team(l).GameMember(k).FoulCount = 0 Then
                        '時間待機はなし
                        Delay 0
                    'ゲームメンバーの誰かが1回だけファウルカウントされた場合
                    ElseIf Game.Team(l).GameMember(k).FoulCount = 1 Then
                        vsGameTime.Enabled = True
                        'ゲームタイマーに1秒加えて00:01にする。
                        vsGameTime.Value = 1
                        'ゲームスタートボタンを非表示にする。
                        cmdGameStart.Enabled = False
                        'ゲーム再開ボタンを表示にする。
                        cmdGamePause.Enabled = True
                        '内側のループ(k)を抜ける。
                        Exit For
                        
                    End If
                Next k
                '外側のループ(l)を抜ける。
                Exit For
            Next l
                
            'ゲームタイマーが00:01秒の時
            Select Case vsGameTime.Value
            Case 0
                '00:00秒になったらカウントダウンタイマーを停止。
                tmrCountDown.Enabled = False
                '次のクォーターへ移る。
                readyNextQuarter
                                    
            Case 1
                'ゲームタイムを一時停止
                pauseGame
                'コマンドボタンに"ゲーム再開"を表示
                cmdGamePause.Caption = sPiResetPuase
                'カウントダウンタイマーを停止しておいてcmdGamePauseボタンを
                'クリックしたらカウントダウンタイマーを再開。
                
            End Select
            
            
            '00:00秒になったらカウントダウンタイマーを停止。
            tmrCountDown.Enabled = False
            '次のクォーターへ移る。
            'readyNextQuarter
                        
            
        '' 24 秒の終了。
        ''  ポーズ。ポーズ再開で、進みます。
        ElseIf vs24Second.Value = 0 Then
            '---オプションボタンで非表示を選択した場合---
            If vs24Second.Visible = False Then
                '---動作させない---
                vs24Second.Enabled = False
            Else
                BeepBuzzer
                resetShotClock
                pauseGame
            End If
        End If
    End If
End Sub


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

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

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