Схема погружения

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

Попутно вы также узнаете советы по дизайну, разработке и распространению, которые важны для создания собственной стеклянной посуды.

Прежде чем вы начнете

Полный исходный код игры Charades доступен на Github. Прежде чем начать, импортируйте его в Android Studio, поскольку в этом руководстве он часто упоминается.

  1. На экране быстрого запуска нажмите «Извлечь из контроля версий» > Git .
  2. Скопируйте URL-адрес клона из Charades .
  3. Вставьте URL-адрес клона в URL-адрес репозитория Vcs и нажмите «Клонировать» .
  4. Нажмите Да на следующем экране.
  5. Нажмите ОК на следующем экране.
  6. Создайте проект и запустите его на подключенном стекле, нажав кнопку «Воспроизвести» . Обязательно проверьте README образца для получения подробной информации о вызове.

Что вы узнаете

Вы узнаете, как использовать компоненты из Android SDK для создания основной части погружения в Charades, а затем GDK для подключения к Glass. Вот список тем, которые вы узнаете:

  • Проектирование пользовательского интерфейса с использованием ресурсов дизайна, которые мы предоставляем.
  • Разработка голосовых триггеров для запуска Glassware
  • Использование действий Android для определения структуры пользовательского интерфейса игры.
  • Создание пунктов меню Android, позволяющих пользователям выбирать параметры игры.
  • Интеграция с Glass с помощью голосового триггера в главном меню.
  • Использование детекторов жестов GDK, которые обнаруживают ввод пользователя и выполняют специальные действия.
  • Изучение простых реализаций пользовательского интерфейса Android, которые добавляют дополнительный блеск и соответствуют стилю Glass.
  • Узнайте о процессе распространения и о том, на что мы обращаем внимание при выпуске Glassware.

Дизайн

Прежде чем приступить к разработке, потратьте некоторое время и спроектируйте свою стеклянную посуду. Это даст вам хорошее представление о том, какие потоки пользовательского интерфейса лучше всего работают на Glass, какую голосовую команду вы будете использовать и как будут выглядеть ваши карты.

Конечно, проектирование Glassware — это итеративный процесс, и некоторые вещи, которые вы проектируете сейчас, изменятся, но выполнение значительной части этой работы на начальном этапе имеет решающее значение для создания отличного опыта.

поток пользовательского интерфейса

Проектирование пользовательского интерфейса — это простое упражнение, позволяющее визуализировать вашу Glassware перед написанием строки кода. Мы постоянно делаем это со стеклянной посудой, которую создаем!

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

Заставка

Этот экран — первый, который видят пользователи, когда начинают погружение в Шарады. Он позволяет пользователям сориентироваться перед тем, как приступить к игровому процессу, и представляет собой общую игровую конструкцию, с которой пользователи знакомы.

Когда пользователи нажимают на сенсорную панель, появляется система меню с двумя пунктами: «Новая игра» и «Инструкции» .

Режим инструкций

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

В этом наборе карточек показаны инструкции к игре, а также инструкции для пользователей о том, как играть и какие жесты использовать для навигации по пользовательскому интерфейсу. Пользователи получают к нему доступ, нажав на пункт меню «Инструкции» на заставке.

Игровой режим

Эти экраны составляют основной поток игрового процесса. Пользователи могут перейти к этому процессу, нажав пункт меню «Новая игра» на заставке.

В этом наборе карточек показано случайное слово (до 10). Пользователи пропускают слово, проводя вперед и касаясь сенсорной панели, когда правильно описывают слово.

Экран результатов игры

На этом экране показаны результаты игры. Сначала появляется экран «Игра окончена», и пользователи могут провести вперед, чтобы увидеть результаты игры. Когда пользователи нажимают на любую из карточек с результатами, появляется пункт меню «Новая игра» , позволяющий пользователям начать другую игру.

Голосовая команда

Вам следует придумать голосовую команду на ранних стадиях процесса проектирования. Голосовые команды позволяют пользователям при необходимости запускать Glassware из голосового меню Glass Home (карта часов) и играют важную роль в разработке Glassware.

Например, команда «Опубликовать обновление» хорошо работает в модели «выстрелил и забыл», когда пользователи произносят команду и некоторый текст, а Glassware обрабатывает ее без дальнейшего вмешательства пользователя. Это позволяет пользователям быстро вернуться к тому, что они делают.

С другой стороны, для чего-то вроде «Играть в игру» обычно требуется, чтобы пользователи отображались на заставке, чтобы они могли сначала сориентироваться. Поскольку эта голосовая команда, скорее всего, запускает погружение, вы можете ожидать, что пользователи увидят дополнительные экраны и меню для запуска игры. Немедленное погружение пользователей в игровой процесс сразу после голосовой команды обычно является плохим опытом для игр.

Шарады используют голосовую команду «Начать игру» . После того, как пользователи вызывают голосовую команду, появляется заставка «Шарады», предлагающая пользователям нажать «Нажать», чтобы просмотреть дополнительные параметры (в данном случае «Новая игра» или «Инструкции» ).

Расклады карт

Независимо от того, создаете ли вы погружения или живые карты, вам следует по возможности использовать макеты CardBuilder или XML .

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

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

Развивать

Для разработки погружений вы используете те же инструменты, которые вы используете для разработки Android, для создания основной части Glassware, а затем используете API-интерфейсы в надстройке GDK для доступа к специфичным для Glass функциям, таким как детекторы жестов и голосовые команды.

Вы часто будете использовать общие компоненты Android для создания Glassware, но имейте в виду, что некоторые концепции иногда различаются. Например, не приравнивайте погружение к активности Android. Погружения — это опыт, разработанный для Glass и созданный на основе одного или нескольких действий Android, а также многих других компонентов GDK и Android SDK.

В остальных разделах «Разработка» рассказывается о том, как структурирована игра «Шарады», и об основных компонентах проекта, которые вы импортировали ранее. Полезно иметь Android Studio уже сейчас, чтобы вы могли следовать инструкциям. Сам исходный код прокомментирован, поэтому в этом разделе рассматривается общее назначение каждого файла и полезные советы, которые вы можете применить к своей собственной стеклянной посуде.

Вот краткий обзор основных компонентов шарад:

  • Объявление голосового триггера для подключения к главному голосовому меню Glass.
  • Активность экрана-заставки, позволяющая пользователям запустить игру или просмотреть инструкции. Это действие запускает действие инструкций или действие игрового процесса.
  • Учебное занятие показывает пользователям, как играть в игру, фактически выполняя основные действия игры.
  • Игровой процесс позволяет пользователям играть в настоящую игру.
  • В разделе «Результаты» отображается счет игры и список угаданных и неугаданных слов. Он также позволяет пользователям начинать новую игру с помощью пункта меню.

Голосовая команда

Вы создаете голосовые команды с помощью файла ресурсов XML, в котором указана используемая вами команда, а затем путем указания ресурса XML в файле AndroidManifest.xml .

Следующие файлы связаны с голосовой командой Charades:

  • res/xml/voice_trigger_play_a_game .xml — объявляет используемую голосовую команду.
  • AndroidManifest.xml — объявляет действие, которое запускается при произнесении голосовой команды.

Активность экрана-заставки

Заставка — это первое, что видят пользователи при запуске Шарады и ориентируют их перед запуском игры.

С этим действием связаны следующие файлы:

  • res/layout/activity_start_game.xml — объявляет макет заставки.
  • res/menu/start_game.xml — объявляет систему меню для заставки, которая содержит пункты меню «Инструкции» и «Новая игра» .
  • res/values/dimens.xml — объявляет стандартные размеры карты и отступы, которые используются в действиях этого проекта в соответствии со стилем Glass.
  • src/com/google/android/glass/sample/charades/StartGameActivity.java — основной класс заставки.
  • res/drawable-hdpi/ic_game_50.png — значок меню « Новая игра» .
  • res/drawable-hdpi/ic_help_50.png — значок меню « Инструкции» .

Игровая модель

Всегда полезно отделить модель игры (состояние игры) от пользовательского интерфейса. Класс CharadesModel отслеживает счет игры и количество фраз, угаданных в режиме игрового процесса и различных инструкциях, а также то, прошли ли пользователи их в режиме инструкций.

Следующие файлы связаны с игровой моделью:

  • src/com/google/android/glass/sample/charades/CharadesModel.java

Основная игровая деятельность

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

С этим действием связаны следующие файлы:

  • res/layout/activity_game_play.xml — определяет макет, общий для игрового процесса и режимов инструкций Шарад.
  • src/com/google/android/glass/sample/charades/BaseGameActivity.java — определяет базовую функциональность игрового процесса и режимы инструкций Шарад, которые являются общими.

Инструкции по активности

В инструкции показаны три карточки, объясняющие, как играть в игру. Прежде чем продолжить, он определяет, выполняют ли пользователи действие, отображаемое на карточке.

С этим действием связаны следующие файлы:

  • src/com/google/android/glass/sample/charades/TutorialActivity.java — расширяет BaseGameActivity и определяет, какой текст инструкций показывать и как обрабатывать жесты, когда пользователи выполняют инструкции для игры.

Игровая активность

Игровая деятельность определяет основной ход игры. Он определяет, какие слова показывать, как вести счет, имеет детектор жестов для обработки жестов и запускает действие с результатами, когда игра окончена.

С этим действием связаны следующие файлы:

  • GamePlayActivity — расширяет BaseGameActivity и содержит основную логику игрового процесса.

Результаты деятельности

Результат действия показывает отгаданные слова, неотгаданные слова и счет в игре. Он также содержит пункт меню, который позволяет пользователям начать новую игру.

С этим действием связаны следующие файлы:

  • res/layout/game_results.xml — определяет макет карточки «Игра окончена».
  • res/layout/card_results_summary.xml — определяет макет для отображения угаданных и неугаданных слов в списке.
  • res/layout/table_row_result.xml — определяет макет отдельной строки для сводки результатов.
  • src/com/google/android/glass/sample/charades/GameResultsActivity.java — определяет фактическое действие, которое показывает макеты и меню, определенные вышеупомянутыми ресурсами XML.
  • res/raw/sad_trombone.ogg — звук, который воспроизводится, когда пользователи не прочли все слова.
  • res/raw/triumph.ogg — звук, который воспроизводится, когда пользователи произносят все 10 слов.
  • res/drawable-hdpi/ic_done_50.png — значок галочки, который появляется рядом с правильно угаданными словами.

Анимационные ресурсы

Эти анимационные ресурсы добавляют Шарадам дополнительный блеск:

  • res/anim/slide_out_left.xml — анимирует выходное представление, сдвигая его влево (например, при передаче слова).
  • res/anim/slide_in_right.xml — анимирует входное представление для скольжения справа (например, когда в поле зрения входит новое слово).
  • res/anim/tug_right.xml — определяет анимацию перетягивания, если вы проводите по представлению, которое не использует пролистывание. Это позволяет пользователям узнать, что смахивание не дало эффекта.

Android-манифест

Файл AndroidManifest.xml описывает основные компоненты вашего Glassware, чтобы система знала, как его запускать. Манифест для Шарад декларирует следующее:

  • Значок и название стеклянной посуды. Glass отображает эту информацию в главном сенсорном меню, если на одну и ту же голосовую команду отвечает более одного Glassware.
  • Все виды деятельности, связанные с Шарадами. Это необходимо, чтобы система знала, как начать работу вашей Glassware.
  • Голосовая команда и фильтр намерений, который запускает определенное действие при произнесении голосовой команды.
  • Код версии для Glassware. Этот код необходимо обновлять (как правило, также и название версии) каждый раз, когда новая версия этого APK загружается в MyGlass.