我想制作一个分数计数器,但是当我使用计时器时,它太慢而无法达到高值并且它的最大间隔是1.参考代码:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
y = y + 2
ShowScore()
If y = Game2048.ScoreLabel.Text Then
Label18.Hide()
Label19.Show()
Timer1.Stop()
Timer2.Start()
End If
End Sub
正如您所看到的,如果Game2048.ScoreLabel.Text的值为60,000且Timer1 Interval为1则需要超过10分钟才能达到60,000。所以我想知道是否有办法在计算得分时减少达到60,000的时间,就像在几个游戏中能够在10秒内计算得分并且当得分更高时,它的数量会更大。有人可以帮帮我吗?谢谢!
* 60,000的值可能会改变!
答案 0 :(得分:0)
您已经比用户界面更新的速度更快,这已经比人眼可以遵循的速度更快。你也会以这种速度向无意义的udpates投入大量的cpu周期。
您想要做的是从人们观看计数器的角度将滴答率设置得相当快。刻度率为250毫秒(每秒4次)应该足够快,任何快于100毫秒(每秒10次)的速度都是浪费。
现在,您可以调整代码以计算此时更新的位置。如果你想在10秒钟内计算到60,000,每秒4次更新,那么你有40次更新,所以只需将y
值设置为1500而不是2.或者更好的是,计算速度:
'Set tick rate to 250
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
y += CInt(Game2048.ScoreLabel.Text) / timer1.Interval / 6
ShowScore()
If y >= Game2048.ScoreLabel.Text Then
Label18.Hide()
Label19.Show()
Timer1.Stop()
Timer2.Start()
End If
End Sub