Игра «Шар принятия решений» (Шар предсказаний)

Концепция приложения: Игра-шутка. Пользователь произносит вопрос, трясет телефон и получает ответ.

Состав приложения:

Материалы к проекту:

Настройка приложения

Предварительно требуется загрузить картинку шара в пустотой по центру, чтобы внутри была видна надпись.

Например, такую:

Её же можно использовать в качестве иконки приложения. Само приложение можно назвать «Шар предсказаний» или «Шар принятия решений».

Дизайн-макет

В приложении будет один экран:

Компоненты:

Настроим Экран.

  • Выравнивание по горизонтали и вертикали — Центр Центр.
  • Скрыть показ заголовка и статус-бара.
  • Ориентация — альбомная или не определено.

Добавим Надпись. Настроим её:

  • Размер, цвет и начертание любое, главное, чтобы было видно.
  • Текст «Задайте вопрос и потрясите телефон».
  • Выравнивание текста по центру.
  • Высота автоматически.
  • Ширина — 80%. Это сделано, чтобы буквы не сливались с границами экрана.

Добавим Вертикальное расположение. Оно нужно, чтобы разместить изображение шара и поместить внутрь надпись. Настройки:

  • Выравнивание — Центр Центр.
  • Высота и ширина — по 300 пикселей. Вы можете потом сделать другой размер. Соотношение сторон должно быть 1:1, чтобы картинка не искажалась.
  • Фоновое изображение — картинка шара.

Внутрь расположения добавим Кнопку. По сути, она будет работать как надпись, но кнопку можно сделать в форме овала, а надпись — нет.

Настройки:

  • Размер, тип, цвет шрифта — по желанию, главное, чтобы надпись была видна и вписывалась в размер отверстия в шаре.
  • Высота и ширина — по 150 пикселей (половина размера родительского элемента).
  • Форма — овал.
  • Текст — «Потряси». Он будет показываться только при запуске приложения, затем мы заменим его на предсказание.
  • Выравнивание текста — Центр.

Добавим невидимый компонент — сенсор Акселерометра. Он нужен для того, чтобы устройство реагировало на тряску. Настройка тут будет заключаться в установке слабой чувствительности сенсора, чтобы игрушка срабатывала при сильной тряске.

Также добавим невидимый компонент Часы. Здесь они нужны чисто для декоративных целей — добавить паузу между встряхиванием телефона и показом ответа. Так как сделать «появление» ответа через полупрозрачность в Апп Инвентор довольно проблематично.

Часы должны быть по умолчанию выключены, а интервал должен быть равен 2000 мс (2 секунды).

Дизайн закончен. Можно приступать к программированию.

Программирование

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

Далее создадим процедуру генерации ответа. Пусть это будет выбор случайного элемента из списка, и результат мы запишем в переменную «Ответ».

Варианты ответов:

  • Да
  • Нет
  • Определенно да
  • Определенно нет
  • Вероятно
  • Бесспорно
  • Никаких сомнений
  • Мне кажется — «да»
  • Мне кажется — «нет»
  • Хорошие перспективы
  • Соберись с мыслями и спроси снова
  • Спроси позже
  • Сейчас нельзя предсказать
  • Даже не думай
  • Весьма сомнительно
  • Перспективы не очень хорошие

Теперь запрограммируем тряску телефона.

Когда Сенсор акселерометра зафиксирует вибрацию:

  1. Присвоить кнопке цвет фона — черный.
  2. Включить таймер.
  3. Вызвать процедуру генерации ответа.
  4. Присвоить тексту кнопки результат генерации.

Теперь нужно выждать время (время таймера мы установили — 2 секунды). И после этого показать результат, и выключить таймер.

Программирование закончено. Можно тестировать приложение на устройствах.

Самостоятельная работа

  • Попробуйте сделать генерацию и показ предсказания по нажатию кнопки.
  • Добавьте звуковое сопровождение к игре.