在vb.net中创建一个分数计数器

时间:2015-07-01 15:40:05

标签: vb.net

我想制作一个分数计数器,但是当我使用计时器时,它太慢而无法达到高值并且它的最大间隔是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的值可能会改变!

1 个答案:

答案 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