16

Пишем простейшую игру для Android

Привет, человеки!


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


Итак, что имеем:


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


Таких примеров очень много, обычно это интеллектуальные рисованные игрушки, вроде 91 градус или сканворды, или правда vs ложь.

Пишем простейшую игру для Android Android, Программирование, Длиннопост

Мы возьмем категорию игры, копий которых больше, чем игроков - угадай по фото / картинке. Игр на самом деле такого характера дофига, но с программной точки зрения тут много функционала.


Тут есть и загрузка картинок, и проверка введенного ответа на правильность, и накапливание игровой валюты за правильные ответы и рисование интерфейса игры.

Пишем простейшую игру для Android Android, Программирование, Длиннопост

Рассказ о создании я начну по мере ее реализации:


1 - Макет

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

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

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

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

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

Начинаем.


Открываем студию, создаем 3 активности. Это могут быть Blank Activity, стандартный код не нужен.


- ScreenActivity (заставка)

- MainActivity (главный экран)

- CareerActivity (экран карьеры)


Заставка будет длиться 2 секунды, функциональной нагрузки в ней нет (загрузки уровней, вычислительной мощность для Prisma, или расчетов для адаптации хомячков в арктике)

Пишем простейшую игру для Android Android, Программирование, Длиннопост

С дизайном не заморачиваемся, так как это будет после создания скелета. Заливаем все colorPrimary:

Пишем простейшую игру для Android Android, Программирование, Длиннопост

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

Пишем простейшую игру для Android Android, Программирование, Длиннопост
Пишем простейшую игру для Android Android, Программирование, Длиннопост

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

1 - объявлять кнопку

2 - назначать слушателя

3 - выполнять onclick


мы просто пишем метод, который прописан во view (main_go_to_catalog). И все. Ведро остальное найдет и сделает за нас. Это удобно, когда действий не слишком много, и позволит сократить код.


Третий экран (карьера) будет состоять из поэтапный миссий, для открытия второй надо выполнить 80% заданий из первой. Я сделал 5 кнопок, и перерисовал toolbar для отображения внутриигровой валюты.


Кстати, посоветовавшись с женским полом, было решено, что валюта назовется фантики. И не вздумайте спорить! =)

Пишем простейшую игру для Android Android, Программирование, Длиннопост

На данный момент придумано два режима: Карьера, и Случайный вопрос. Об этом будет спрашивать приложение, по нажатии кнопки Играть:

Пишем простейшую игру для Android Android, Программирование, Длиннопост

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


Друзья!


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


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


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



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


Всем бобра, и хороших выходных!

0
Автор поста оценил этот комментарий

HI.
@VBELKE... я сделал игру на Java, хочу переписать ее под Андроид, т.к. Андроид и Java разнятся в принципах построения приложений.
Подскажи как организовать разделение меню и игровой части или как это сделать правильно.
с уважением @Ukauka...