0

我已经做到了,所以我有一个进度条,它是玩家的健康从 100 开始,并通过计时器随着时间的推移而下降。当玩家健康进度条变为 0 时,我想要一条消息显示“你死了!游戏结束。”

由于'Handles PlayerHealth.Click'位,它只是在进度条达到0时单击它时才这样做,而不是这样做。但是我该如何更改 PlayerHealth.Click 以使其在进度条刚刚达到 0 时出现消息框,而无需单击它?

我在智能感知列表中找不到正确的东西。或者有没有更好的方法?

这是有问题的代码:

Private Sub AttackButton_Click(sender As System.Object, e As System.EventArgs) Handles AttackButton.Click
    PlayerHealthTimer.Start()
    EnemyHealth.Increment(-2)
End Sub

Private Sub PlayerHealthTimer_Tick(sender As System.Object, e As System.EventArgs) Handles PlayerHealthTimer.Tick
    PlayerHealth.Increment(-2)
End Sub

Private Sub PlayerHealth_Value(sender As System.Object, e As System.EventArgs) Handles PlayerHealth.Click
    If PlayerHealth.Value = 0 Then
        MsgBox("You died! Game over.")
    End If
End Sub

忽略中间的子。谢谢!

4

2 回答 2

2

它在单击时触发,因为您在处理单击方法的 Sub 中有 MessageBox。

您实际上可能想使用您说要忽略的中间子:)。那个处理每个刻度的逻辑。

Private Sub PlayerHealthTimer_Tick(sender As System.Object, e As System.EventArgs) Handles PlayerHealthTimer.Tick
    PlayerHealth.Increment(-2)
    if PlayerHealth.Value = 0 Then
      MsgBox("You died! Game Over.")
      ''Then make sure to stop the timer
      PlayerHealthTimer.Stop()
    End If
End Sub
于 2013-08-29T20:20:45.420 回答
1

你可以使用像这样的条件

if PlayerHealth.value<=0 then
'place a message box or other way to show info message
end if
于 2013-08-30T05:34:02.893 回答