我正在制作一个小游戏,问题是法术攻击造成了很大的伤害并且变为负面但是我已经创建了一个IF语句,如果进度条的值低于0但是仍然会使损坏= 0我真的很困惑
Private Sub Btnspell_Click(sender As Object, e As EventArgs) Handles
Btnspell.Click
sdamage = spell.Next(5, 10)
If Playermana.Value < 20 Then
Playermana.Value = Playermana.Value - 0
End If
If Playermana.Value <= 19 Then
MsgBox("Not enough mana")
End If
If farmerhealth.Value > 0 Then
farmerhealth.Value = farmerhealth.Value - sdamage
Playermana.Value = Playermana.Value - 20
Timer1.Start()
End If
If farmerhealth.Value <= 0 Then
MsgBox("You have killed the farmer")
sdamage = 0
farmerhealth.Value = farmerhealth.Value + 0
End If
End Sub
End Class
答案 0 :(得分:5)
已更新以避免HP
名称:
我认为你的价值仍然是负值,因为你有:
If farmerhealth.Value > 0 Then
farmerhealth.Value = farmerhealth.Value - sdamage
Playermana.Value = Playermana.Value - 20
Timer1.Start()
End If
此处,例如,如果你有farmerhealth.Value = 1
,则会造成伤害,但它可能是sdamage = 7
,因此会变为负数(farmerhealth.Value - sdamage
会返回-6
)。
只需检查此语句中farmerhealth.Value - sdamage
是否为否定,然后将值0改为farmerhealth.Value
。
更新2:然后应该结束这样的事情:
If farmerhealth.Value > 0 Then
If (farmerhealth.Value - sdamage) <= 0 then
farmerhealth.Value = 0
else
farmerhealth.Value = farmerhealth.Value - sdamage
End If
Playermana.Value = Playermana.Value - 20
Timer1.Start()
End If