多个定时器在windows窗体应用程序

本文关键字:窗体 应用程序 windows 定时器 | 更新日期: 2023-09-27 18:08:03

我尝试在c# visual studio 2010中创建一个小游戏。我想做一些类似游戏Bubble Trouble在windows窗体应用程序

我从工具箱中创建了一个带有3个计时器的表单。一个用于玩家的移动(他通过改变标签的图像来移动它的腿)-这个计时器被设置为在OnKeyDown事件时启用,并在onKeyUp事件时停止。

拍摄的第二个计时器-当空格键被按下时,该计时器设置为在事件"onKeyPress"上启用。该定时器用于逐片绘制射击线。

第三个计时器是为球员应该弹出的球-这个计时器一直在运行,它的建议是移动球。

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

我能做些什么来解决这个问题?

多个定时器在windows窗体应用程序

我建议稍微重构一下你的代码,如下所示:

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

按下拍摄键可以:

_shootKeyDown = True

射击键的上键可以:

_shootKeyDown = False

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

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