我正在制作视频游戏,特别是现在我想制作伪动画门。
我的意思是,当我使用游戏中的门时,它的图像应该从"关闭"要打开"然后游戏必须等待大约半秒钟,然后才能加载另一个区域。 问题是,计时器实际上并没有等待所需的时间,或者至少并不总是如此。有时它会持续500毫秒,因为它是预期的,有时会持续更短的时间。
我使用以下代码:
使用门时
imgLockerRoomOpenDoor.Visibility = Visibility.Visible;
tmrDoorOpening.Tick += new EventHandler(tmrLockerRoomDoorOpening);
tmrDoorOpening.Interval = new TimeSpan(0, 0, 0, 0, 500);
tmrDoorOpening.Start();
" tmrLockerRoomDoorOpening"代码:
tmrDoorOpening.Stop();
AreaTransition();
areaHibernation1.Visibility = Visibility.Visible;
areaHibernation1.IsEnabled = true;
areaHibernation1.Margin = new Thickness(55, 31, 0, 0);
ActionsReset();
计时器声明:
public static System.Windows.Threading.DispatcherTimer tmrDoorOpening = new System.Windows.Threading.DispatcherTimer();
AreaTransition用于隐藏所有游戏区域,因此不要认为它是相关的。
为什么计时器可以在不同的时间段内工作?如何将其设置为相同?
我举一个例子。 有两个房间。
1)我在1号房间。
2)我点击门。
3)门图像变为打开,程序等待1/2分钟,然后房间1消失,我出现在房间2中。
4)我回到房间1.门已经关闭了。
5)我再次点击门,但现在门打开的时间较短。
答案 0 :(得分:-1)
我看到你使用tmrDoorOpening.Stop();
所以定时器不能总是500,因为你停止它?
它将在stop()>之间的时间为500 +工作>启动()