В логике игры размещается следующее:
while (TouchPanel.IsGestureAvailable)
{
// Считывание жеста
GestureSample gesture = TouchPanel.ReadGesture();
// Координаты касания и другие необходимые параметры
int tapY = (int)gesture.Position.Y;
int tapX = (int)gesture.Position.X;
<>
switch (gesture.GestureType)
{
// Если жест является нажатием:
case GestureType.Tap:
<>
break;
<>
// Если жест является перетягиванием:
case GestureType.FreeDrag:
<>
break;
}
}
Нажатия на аппаратные кнопки
Обработка нажатий на аппаратные кнопки тоже важна, однако в приложении запрещено использовать их для нестандартных функций (например, аппаратную кнопку назад для установления паузы).
Одним из требований к приложениям и играм является то, что необходимо программировать действия для аппаратной кнопки назад таким образом, что после нажатия на нее показывается предыдущий модуль игры (не относится к игровым уровням), пример:
Меню Список уровней Уровень 1 Уровень 2
Из любого уровня переход назад осуществляется в Список уровней, даже если новый уровень запускался после предыдущего, из Списка уровней соответственно в Меню, из Меню же происходит выход из приложения:
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)