Привет, пикабуняне!
Продолжаем наш рассказ о написании простейшей игры на платформе Android.
Сразу для лентяев - игра в стиле Викторина, много непонятных слов и букв, есть картинки.
Всю процедуру разбил на несколько подтем, то, что пройдено, отмечу ссылкой.
1 - Макет
2/3 - Функционал
4 - Графика (иконки)
5 - Графика (интерфейс)
6 - Работа над ошибками
7 - Тестирование
В прошлый раз, когда мы собирали скелет, я совсем забыл о необходимости создать еще одну активность в карьере. Каждый этап прохождения будет фиксироваться, позволяя открывать более сложные вопросы.
Скриншот выше - новая активность, назвал ее одноименно: stage_1
Для начала мы установим для всего приложения полноэкранный режим. Во первых, у нас должно получиться что то наподобие игры, а большинство игр полноэкранные, и в них нет стандартных графических черт из ОС.
Это дело мы настраиваем в манифесте, предварительно создав новый стиль с параметром
<item name="android:windowFullscreen">true</item>
Далее в первой категории вопросов (коих будет 20, для разминки), нужно написать много методов, которые отвечают за подсказки, отображение контента, и обновление кнопок, так как вопросы каждый раз разные, и необходимо проверять правильность ввода пользователем.
Я опишу наиболее важные процедуры на экране.
На данном экране мы видим:
- TextView (Номер вопроса)
- ImageView (Изображение, которое я показываю через библиотеки Picasso + PolygonImageView, позволяющее выводить произвольные рамки и фигуры).
Искать в гитхабе по запросу PolygonImageView
- TextView (Текст вопроса)
- Button (Кнопка ответить. По ней будет выводиться диалог, в котором можно ввести ответ)
- Button (Кнопка для подскази. По нажатию забирает драгоценные фантики, и выводит подсказку)
- Button (Кнопка пропустить. Позволяет пропустить текущий вопрос, и перейти к следующему. Необходимо сделать количество пропусков ограниченным)
Первым делом мы добавляем к стандартному коду из активности настройки sharedpreference, начальную позицию фантиков и вызываем метод quest_one. Он и загружает первый вопрос:
В методе я добавил комментарии, так что не сложно разобраться. Картинка, которая взятая из гугла, в последующем будет сжата и загружена на хост/или в приложение, некоторые значения будут заталкиваться в strings (потому что так надо)
Метод, отлавливающий нажатие на кнопку "Подсказать". Вначале, в методе идет проверка, сколько фантиков накоплено у юзера. Если фантиков не хватает, то подсказка показана не будет.
Если же фантиков достаточно, будет вызван alertdialog, в котором будет браться значение из string
метод, отвечающий за проверку введенных данных. Вначале, мы получаем введенный текст, переводим его в формат string, и с помощью параметра equals сравниваем приведенное, значение, с тем что хранится у нас. Если будет введен правильны ответ, появиться маленькое окошко, с поздравлением:
Я также не описал методы, которые позволяют сохранять количество фантиков при переходе, а также методы для начисления этих самых фантиков.
Выполняется там простейшая математическая операция на языке ява (+/-), и там показывать даже нечего.
В следующий раз мы будем дорабатывать кнопки (не работает кнопка пропустить), и сохранять вопрос, на котором остановился пользователь, если решит выйти (сейчас все сбрасывается в начало).
Также нам надо поработать над уведомлениями, если ответ пользователя был неправильный.
Друзья!
Желающие (и имеющие свободное время) художники могут присоединиться к созданию игрового интерфейса, так как игра будет полноэкранной, и многие элементы будут упразднены. За идею =)
Те личности, которые полезных навыков не имеют желают посодействовать в прототипировании, могут изъявить свои пожелания, что хотелось бы увидеть.
Например, угадывать не только изображения, но и слова из цитат, фраз, стихов и пр.
Также напоминаю, что действует конкурс, по окончанию которого я бесплатно исполню желание людей, которым необходим сайт или приложение для вашего стартапа.
Всем бобра!