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

Чтение книги онлайн.

Читать онлайн книгу Программирование для мобильных платформ. Windows Phone - Иван Трещев страница 3

Программирование для мобильных платформ. Windows Phone - Иван Трещев

Скачать книгу

методе Draw(GameTime gameTime) рисуем текстуру:

      spriteBatch.Draw(название_переменной, new Rectangle(координата_x, координата_y, ширина, высота), Color.White);

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

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

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

      В методе 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)

      {

      if (Mode == GameMode.Menu)

      {

      this. Exit ();

      }

      else if (Mode == GameMode.Levels)

      {

      Mode = GameMode.Menu;

      }

      else if (Mode == GameMode.Level_1)

      {

      Mode = GameMode. Levels;

      }

      else if (Mode == GameMode.Level_2)

      {

      Mode = GameMode.Levels;

      }

      }

      Создание игровых модулей рассмотрено в соответсвующем разделе.

      Работа с таймером

      Некоторые игры требуют работу со временем и выводом некоторого таймера

Скачать книгу