Windows窗体应用程序中的多个计时器

时间:2013-04-08 01:30:19

标签: c# visual-studio-2010 timer

我试图在c#visual studio 2010中创建一个小游戏。 我试图在Windows窗体应用程序中制作类似游戏Bubble Trouble的东西。

我使用工具箱中的3个计时器创建了一个表单。 一个用于播放器的移动(他通过更改标签的图像来移动它的腿) - 此计时器设置为在事件OnKeyDown上启用,并在事件onKeyUp上停止。

拍摄的第二个计时器 - 当按下空格键时,此计时器设置为在事件“onKeyPress”上启用。此计时器用于逐片绘制拍摄线。

并且第三个计时器用于球员,球员应该弹出 - 这个计时器始终在运行,并且它的用途是移动球。

但我发现的问题是,当我增加球计时器的间隔时 - 然后当其他计时器设置为启用时,它们都变得很慢。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

我建议稍微重新分解你的代码,如下所示:

  1. 而不是在keydown和keyup事件中启用和禁用计时器,而是更改模块级状态变量的值。
  2. 例如:

    拍摄键的键控可以:

    _shootKeyDown = True
    

    拍摄键的关键可能是:

    _shootKeyDown = False
    

    然后,您可以处理需要在您想要的任何时间间隔内发生的单个计时器事件中更新的所有元素。

    If _shootKeyDown Then
        ...
    End If
    
    If _playerDirection <> "" Then
        ...
    End If
    
    If _ballExists Then
        ...
    End If