Функция, которую вы ищете: TouchPanel.GetState
.Просто вызвать эту функцию на частоте 60 Гц.
Чтобы получить 60 Гц, вы можете установить Game.TargetElapsedTime
на 1/60 секунды.Это даст вам два обновления для каждого розыгрыша (согласно сообщению Шона Харгривза здесь ), при условии, что вы используете VSyncing со скоростью 30FPS.
Если вы все еще хотите, чтобы обновления состояния игры выполнялись со скоростью 30FPS.(просто сенсорный ввод при 60FPS), тогда вы можете поместить эти обновления в другой поток.Запустите обновление, выполняющее этот поток при первом вызове Game.Update
, и дождитесь его завершения во втором вызове и т. Д.
(Следует отметить, что обычно ввод XNA должен выполняться наосновной поток ( источник ). Я предполагаю, что это относится к телефону и сенсорному вводу.)
В качестве альтернативы вы можете полностью заменить синхронизацию класса Game
(вызывая GraphicsDevice.Present
себя).Это не легко сделать, но это возможно.Хорошее место для начала - взглянуть на класс Game
в Reflector.
(Отказ от ответственности: я еще не пробовал никакой реальной разработки на базе телефона, поэтому могут быть некоторые, связанные с телефономГочась, о котором я не знаю.)