18+
реклама
18+
Бургер менюБургер меню

Иван Трещев – Программирование для мобильных платформ. Windows Phone (страница 3)

18

Обработка нажатий

Нажатия на экран

Современные мобильные телефоны в большинстве случаев оснащены большим сенсорным экраном и минимальным количеством аппаратных кнопок, поэтому и организация взаимодействия с играми построена на считывании жестов с экрана.

В методе Game1() прописываются жесты, что могут быть использованные в игре:

public Game1()

{

<…>

TouchPanel.EnabledGestures = GestureType.Tap | GestureType.FreeDrag;

<…>

}

Все возможные жесты можно посмотреть в подсказке, всплывающей при вводе" GestureType". Наиболее часто используемые из них, это Tap – нажатие, FreeDrag – перетягивание, Hold – долгое нажатие, DoubleTap – двойное нажатие. Так же можно обработать и действия при отсутствии жестов.

В логике игры размещается следующее:

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)

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.