Я делаю элемент управления TextBox в XNA и не имею доступа к классу GameTime
. В настоящее время я пытаюсь смоделировать курсор курсора мигающего текста и успешно сделал это, используя этот код:
int deltaTickCount = Environment.TickCount - previousTickCount;
if (deltaTickCount < CursorBlinkRate && Selected)
{
spriteBatch.Draw(emptyPixel, new Rectangle(caretLocation, Rectangle.Y + 1, caretWidth, caretHeight), Color.Black);
}
else if (deltaTickCount > CursorBlinkRate * 2)
{
previousTickCount = Environment.TickCount;
}
Однако я немного опасаюсь использования Environment.TickCount
. Если компьютер работал достаточно долго, не произойдет ли сбой программы или не произойдет непредсказуемое поведение, когда число тиков превысит его интегральный размер?
Кто-нибудь знает, что делает Windows? Я предполагаю, что это будет использовать системные часы. Это было бы более подходящим решением? Я полагаю, они использовали что-то вроде общего количества миллисекунд до секунды вместо числа тиков, но я не уверен.
Спасибо за чтение.