在VB.Net中创建计时器倒计时?
我正在创建一个小游戏,当用户点击一个按钮时,它会“攻击”怪物,使其失去5点生命,并用进度条显示。然后同时怪物也攻击使玩家失去生命。但问题是这些事件发生在同一时间,我希望两个事件之间有2秒的间隔。从今天早上开始,我一直在尝试让计时器事件工作,但它就是不工作。这是我的代码在VB.Net中创建计时器倒计时?,vb.net,timer,countdown,Vb.net,Timer,Countdown,我正在创建一个小游戏,当用户点击一个按钮时,它会“攻击”怪物,使其失去5点生命,并用进度条显示。然后同时怪物也攻击使玩家失去生命。但问题是这些事件发生在同一时间,我希望两个事件之间有2秒的间隔。从今天早上开始,我一直在尝试让计时器事件工作,但它就是不工作。这是我的代码 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tic
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Tick = 0 Then
Timer1.Stop()
Timer1.Enabled = False
Else
Tick -= 1
End If
End Sub
这是攻击按钮事件
Private Sub btnAttack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAttack.Click
PlayerAttacks(mhealth, attack)
textShiftUp(numlines)
HPBarsAlter(mhealth, health)
Tick = 2
Timer1.Start()
MonsterAttacks(health, mattack, CritRate)
HPBarsAlter(mhealth, health)
MobDeath(mhealth, MobNumber)
Timer1.Stop()
End Sub
如果您需要更多信息,请告诉我谢谢:)基本上,将怪物攻击移动到计时器
Private Sub btnAttack_Click(...)
btnAttack.Enabled = False ' disable more attacks
PlayerAttacks(mhealth, attack)
textShiftUp(numlines)
HPBarsAlter(mhealth, health)
MonsterTimer.Interval = 2000
MonsterTimer.Start()
End Sub
Private Sub MonsterTimer_Tick(...
' not sure what the old code was doing
MonsterTimer.Stop ' stop the attacks
MonsterAttacks(health, mattack, CritRate)
HPBarsAlter(mhealth, health)
MobDeath(mhealth, MobNumber)
btnAttack.Enabled = True ' allow more attacks
End Sub
编辑
添加了两行代码来切换等待时的攻击能力。hmm这似乎不起作用,我粘贴了所有这些,但当我单击按钮时,它只会让玩家攻击,然后什么也没有发生,怪物没有反应。nvm感谢这起作用,我意外地做了公共时间1_Tick()并留下了空白的刹车哈哈。谢谢你,我只是想补充一点,一个直接的副本可能需要一些编辑的名称…点击检查,如果这有助于做更多的事情,当我按下攻击,它等待2秒,然后怪物攻击对吗?但在这2秒钟内,用户可以通过垃圾邮件发送攻击按钮,导致MMM在2秒钟内自由攻击。“感谢按钮”在哪里添加了两行来切换攻击…在上面的答案旁边应该有一个检查的大纲。单击它以接受答案并将其从未答复列表中删除(它将变为绿色)