Частота тиков не может быть меньше или равна 0.
Вы можете просто добавить оператор if, чтобы проверить, что:
if (GameTimer.Interval <= 20) {
GameTimer.Interval = 1;
} else {
GameTimer.Interval -= 20;
}
Однако это означает, что интервал таймера будетдостичь предела после достижения определенного балла.Кроме того, экран не может обновляться так быстро (1000 раз в секунду).Вероятно, вам следует поддерживать частоту кадров 30 кадров в секунду.
Поэтому, чтобы анимация появлялась быстрее, выполняйте большую часть анимации в каждую секунду.Например, чтобы переместить что-то на 1000 пикселей вправо, не перемещайте это на 1 пиксель каждые 1/1000 секунды.Вместо этого перемещайте его на 50 пикселей каждую 1/20 секунды.
Из вашего комментария:
Проблема в том, что я не понимаю, почему интервал опускается ниже нуля, еслиОператор выполняется только один раз, и он сразу же дает мне эту ошибку.
Тогда вы выполняете оператор if более одного раза.Я предполагаю, что вы запускаете его в обработчике событий таймера.Как только ваш счет становится кратным 1000, этот оператор будет выполняться каждый раз, когда срабатывает таймер, пока ваш счет не изменится.
Чтобы исправить это, вы можете поместить код в установщик счета.