Пишем простейшую игру на Android (Часть 2)

Привет, пикабуняне!


Продолжаем наш рассказ о написании простейшей игры на платформе Android.


Сразу для лентяев - игра в стиле Викторина, много непонятных слов и букв, есть картинки.

Всю процедуру разбил на несколько подтем, то, что пройдено, отмечу ссылкой.


1 - Макет

2/3 - Функционал

4 - Графика (иконки)

5 - Графика (интерфейс)

6 - Работа над ошибками

7 - Тестирование

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

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


Скриншот выше - новая активность, назвал ее одноименно: stage_1


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


Это дело мы настраиваем в манифесте, предварительно создав новый стиль с параметром

<item name="android:windowFullscreen">true</item>

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

Далее в первой категории вопросов (коих будет 20, для разминки), нужно написать много методов, которые отвечают за подсказки, отображение контента, и обновление кнопок, так как вопросы каждый раз разные, и необходимо проверять правильность ввода пользователем.


Я опишу наиболее важные процедуры на экране.

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

На данном экране мы видим:


- TextView (Номер вопроса)

- ImageView (Изображение, которое я показываю через библиотеки Picasso + PolygonImageView, позволяющее выводить произвольные рамки и фигуры).

Искать в гитхабе по запросу PolygonImageView

- TextView (Текст вопроса)

- Button (Кнопка ответить. По ней будет выводиться диалог, в котором можно ввести ответ)

- Button (Кнопка для подскази. По нажатию забирает драгоценные фантики, и выводит подсказку)

- Button (Кнопка пропустить. Позволяет пропустить текущий вопрос, и перейти к следующему. Необходимо сделать количество пропусков ограниченным)

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

Первым делом мы добавляем к стандартному коду из активности настройки sharedpreference, начальную позицию фантиков и вызываем метод quest_one. Он и загружает первый вопрос:

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

В методе я добавил комментарии, так что не сложно разобраться. Картинка, которая взятая из гугла, в последующем будет сжата и загружена на хост/или в приложение, некоторые значения будут заталкиваться в strings (потому что так надо)

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

Метод, отлавливающий нажатие на кнопку "Подсказать". Вначале, в методе идет проверка, сколько фантиков накоплено у юзера. Если фантиков не хватает, то подсказка показана не будет.


Если же фантиков достаточно, будет вызван alertdialog, в котором будет браться значение из string

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

метод, отвечающий за проверку введенных данных. Вначале, мы получаем введенный текст, переводим его в формат string, и с помощью параметра equals сравниваем приведенное, значение, с тем что хранится у нас. Если будет введен правильны ответ, появиться маленькое окошко, с поздравлением:

Пишем простейшую игру на Android (Часть 2) Программирование, Android, Длиннопост

Я также не описал методы, которые позволяют сохранять количество фантиков при переходе, а также методы для начисления этих самых фантиков.


Выполняется там простейшая математическая операция на языке ява (+/-), и там показывать даже нечего.


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


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


Друзья!


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


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


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



Также напоминаю, что действует конкурс, по окончанию которого я бесплатно исполню желание людей, которым необходим сайт или приложение для вашего стартапа.


Всем бобра!

Android Developers

86 постов2K подписчиков

Добавить пост

Правила сообщества

Друзья!


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

(освоить Java / покормить кота / установить студию), но и реальные примеры того, что Вы описываете.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Даже если человек попробует это сделать, то ничего не получится. Как минимум, нет picasso в gradle файле.

Вообще начинание неплохое, но очень много замечаний по code convention

раскрыть ветку (6)
Автор поста оценил этот комментарий

конкретнее.


сейчас я вижу работу приложения так, и в списке есть графа работа над ошибками.

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Нет разметки XML, нет gradle файлов. Именование переменных и классов через "_", переменные с большой буквы.

раскрыть ветку (4)
Автор поста оценил этот комментарий

ненужные вещи в данном разговоре.


разметка перетягивается в редактор мышкой, в gradle - две внешние библиотеки + minsdk 15. что там показывать? по поводу переменных - на моих приложениях еще не фиксировались краши из за синтаксиса классов и методов, пусть даже они не по феншую

раскрыть ветку (3)
Автор поста оценил этот комментарий

Так а для кого Вы сделали пост тогда? Программисты и так это всё умеют, а неспециалисты не смогут этого сделать.

раскрыть ветку (2)
Автор поста оценил этот комментарий

материал для тех, кто хочет взглянуть на внутренности приложения, кто умеет - подчерпнуть/подсказать логику (пишут по разному), или увидеть/попробовать новые фишки в MD, позиционировании.


p.s. хомячки не сделают, ибо кроме xml тут не хватает 30+ файлов

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

К коду можно вечно придираться. А вот заметка про отсутствие XML и градл-файлов верна. Пост очень маленький для такого объема, так что крайне желательно выложить ссылочку на какой-нибудь гит-репо, нормально описанной вики. Либо больше картинок, больше текста, больше информации:) В любом случае, похвальна ваша деятельность, продолжайте в том же духе, просто учитывайте замечания:)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку