Как я создал мобильную игру для своего ребёнка
Содержание:
- Игровой персонаж
- Заработок на бесплатных приложениях Android и IOS
- А какая будет игра?
- Онлайн сервис AppsGeyser
- Игру нужно сделать!
- Добавляем взаимодействие с экраном
- Разработка игрового геймплея и создание оригинального логотипа
- Онлайн-сервисы для создания игр на андроид
- Разработка идеи
- Создание игрового цикла
- Попробуйте применить принцип «Easy to learn, hard to master»
- Пример разработки простой 2D-игрушки Андроид
- Приложения для создания игр
Игровой персонаж
Сначала создайте новый проект и убедитесь, что выбрана опция 2D.
Загрузите свой спрайт птицы в сцену. Не забудьте включить фантазию!
Затем отрегулируйте размер спрайта как вам нравится, перетягивая его за угол в нужном направлении. Спрайт должен быть виден в окне иерархии () слева. В нём видны все объекты в сцене, и на данный момент их должно быть всего два: камера и птица.
Интенсив «Профессия Data Scientist: учимся обработке и анализу данных за 3 дня»
26–28 апреля, Онлайн, Беcплатно
tproger.ru
События и курсы на tproger.ru
Перетащите камеру на птицу и отпустите. Камера должна оказаться под птицей, это будет значить, что камера теперь «ребёнок» птицы. Теперь позиция камеры будет фиксироваться относительно птицы. Если птица двигается вперёд, то камера делает то же самое.
Снова выберите птицу в сцене или в окне иерархии. Вы увидите список опций и атрибутов справа в окне под названием . Здесь вы можете управлять различными переменными, привязанными к определённому объекту.
Теперь нажмите на . Выберите — это готовый набор инструкций для применения гравитации к нашему персонажу. Нажмите на в этой панели и затем выберите . Это позволит предотвратить вращение птицы вместе с камерой по кругу.
Таким же образом добавьте , который говорит Unity, где находятся границы персонажа. Нажмите и увидите, как спрайт вместе с камерой бесконечно падает вниз.
Пока всё идёт хорошо!
Теперь пора заняться полётами персонажа, благо это будет несложно.
Сначала нужно создать C#-скрипт. Создайте для него папку (кликните правой кнопкой мыши где-нибудь в и создайте папку «Scripts»), сделайте клик правой кнопкой мыши и выберите .
Назовём его «Character». Кликните по нему дважды, чтобы открыть его в вашей IDE, будь то MonoDevelop или Visual Studio. Затем добавьте следующий код:
Этот код делает две вещи. Он заставляет персонажа двигаться вперёд со скоростью, которую мы определим в инспекторе, и создаёт ощущение полёта птицы. Метод вызывается повторно на протяжении игры, поэтому всё, что вы сюда поместите, будет выполняться непрерывно. В данном случае мы добавляем немного скорости нашему объекту. Переменная является скриптом , который мы применили к нашему объекту ранее, поэтому когда мы пишем , мы обращаемся к скорости объекта.
Тап по экрану интерпретируется Unity как клик мыши, если вы используете мобильное устройство. После нажатия мы заставляем персонажа немного подняться вверх.
Переменная будет отвечать за скорость движения, а переменная — за увеличение высоты полёта птицы после каждого нажатия. Поскольку эти переменные объявлены как , мы сможем изменить их вне скрипта.
Метод тоже объявлен как , что значит, что другие объекты и скрипты смогут его вызвать. Этот метод просто возвращает положение персонажа в начало. Также он будет использоваться каждый раз, когда персонаж будет залетать слишком высоко или низко. Скоро вы поймёте, почему он объявлен именно как . Строка нужна, чтобы убрать импульс — мы же не хотим, чтобы после каждой смерти персонаж падал всё быстрее и быстрее?
Теперь можно выходить из IDE и добавлять скрипт как компонент к персонажу. Для этого нужно выбрать нашу птицу и нажать . Теперь мы можем определять и в инспекторе (для этого и нужны -переменные). Присвоим переменным значения 3 и 5 соответственно.
И ещё: в инспекторе нужно добавить тег к персонажу. Для этого кликните там, где написано и затем выберите в выпадающем списке.
Заработок на бесплатных приложениях Android и IOS
Те, кто никогда не задумывался о разработке своего приложения, даже не представляет, как получают прибыль создатели таких проектов. То, что программа или игра бесплатная, не значит, что её разработчик трудится на общее благо. Есть много методов монетизации таких проектов:
1. Реклама в приложении
Наиболее распространенный вариант, когда приложение подключается к рекламной сети и в него устанавливается реклама. Наверняка и вам доводилось с этим сталкиваться, когда выскакивают всякие баннеры, появляются всплывающие окна, светятся тизеры:
Оплата начисляется за просмотры и переходы по рекламе, условия и вознаграждения везде разные. К тому же, доходность зависит от тематики и целевой аудитории. Очевидно, что приложения на финансовые темы будут от рекламы приносить больше, чем развлекательные проекты.
2. Покупки в приложении
Сколько уже написано отзывов о приложениях, где люди жалуются на кучу рекламы. Она действительно раздражает, из-за этого даже приходится удалять некоторые полезные программы. Поэтому некоторые разработчики используют другой подход. Пользователям предлагают потратить деньги самостоятельно:
Это могут быть игровые монетки, какие-нибудь другие «плюшки». Вариант отличный, но чтобы поддерживать такой проект, придется его сначала хорошо раскрутить. Всё-таки большинство предпочитает не тратить деньги.
3. Премиум и подписка
Есть приложения, в которых нет рекламы и платных услуг, но предлагается выгодная подписка. По сути, это та же покупка приложения, но некоторые из них представлены и в бесплатной версии. За деньги пользователи получают дополнительные функции и различные привилегии:
Такой подходит тоже хороший, только заставить пользователей купить подписку не просто. Сейчас на Ютубе предлагают подписаться на сервис с музыкой, а канал ТНТ предлагает вступить в TNT Club. Примеры монетизации приложений и сервисов.
4. Прочие виды заработка
Разработчики мобильных приложений используют множество других способов для заработка на своих проектах. Некоторые даже добавляют рекламу для направления трафика в партнерские программы. Наиболее распространенные варианты:
- Реклама в PUSH уведомлениях.
- Просмотры рекламных видеороликов за бонусы.
- Всплывающие окна и баннеры.
- Спонсорство (выпуск приложения от чужого имени).
- Прямые рекламодатели.
Сейчас встречаются сервисы, где комбинируется сразу все представленные способы. Рекламу распространяют всеми доступными способами, плюс обязательно добавляют платные функции. Тут нужно искать грань, когда рекламы будет достаточно в приложении, но так, чтобы она не заставляла пользователей удалить его.
А какая будет игра?
После грандиозных планов о создании студии я начал размышлять, а какую игру я хочу, и для кого она подойдет.
Решил, что буду делать детскую игру, так как в ней не нужен какой-то серьезный сюжет, да и механики должны быть самими простыми, всё-таки дети что им еще нужно, красивая картинка и анимация и тЫкай по экрану.
Я не смотрел что вообще есть на google play (не искал там идее, так как думал, что это меня будет отвлекать и заведет не туда), я понимал, что игра должна быть полезной как для ребенка, так и для его родителя, поэтому решил, что игра должна быть развивающей.
Так я и пришел к идее игры звуки животных, после того как я полностью придумал в голове как игра должна выглядеть я пошёл в Google Play посмотреть есть ли что-то подобное уже на просторах Маркета. Моему удивлению чего-то похожего я не нашел, да были поделки на коленке, но это далеко отличалось от того что хотел реализовать я. Увидев, что игра как мне тогда казалось будет уникальной, а значит востребованной я начал в голове уже считать заработанные миллионы.
Онлайн сервис AppsGeyser
AppsGeyser – это сервис, бесплатный конструктор, позволяющий делать видеоигры и приложения с нуля прямо из браузера. Примечательно, что от пользователя не требуется никаких знаний программирования. Достаточно просто зайти на сайт и следовать инструкции.
Разберем создание игры в качестве примера:
- Зайдите на сайт AppsGeyser и нажмите на кнопку «Создать».
- Откроется окно жанров. Выберите наиболее подходящий жанр.
- Далее последует краткое описание выбранного жанра (в нашем случае ранер).
- Следующий шаг – загрузка изображений и анимации. Можно создать их самостоятельно или загрузить шаблон из интернета.
- Создание врагов – еще один шаг. Потребуется указать их число, параметры здоровья и загрузить изображение недруга.
- Теперь перейдем в окно создания фона. Здесь имеются заготовленные шаблоны. Если они не понравятся, то фон можно создать самостоятельно.
- Музыкальное сопровождение – еще один фактор успешной видеоигры. Разработчики утилиты предлагают список музыки, шрифтов, не защищенных авторских правом. Весь контент абсолютно бесплатный.
- Все остальные пункт касаются визуального оформления – иконки, описания, и т.п.
Обратите внимание, что загружать и сохранять проекты можно только после прохождения регистрации в AppsGeyser. Пройдя регистрацию, разработчики смогут публиковать результаты работ в Google Play Market
Однако эта процедура будет стоить 25 долларов за публикацию.
Игру нужно сделать!
Спустя полгода, я подумал все-таки нежно довести игру до ума, если она не будет успешной в нее все равно будет играть мой ребенок (надеюсь), мне будет приятно и этого достаточно.
Первым делом я решил отказаться от дорогостоящего 3D и делать в 2D тем более я познакомился с талантливой девушкой, которая хорошо рисовала, а самое главное, она так же, как и я вдохновилась этой игрой, мы договорились если игра будет успешной 25% прибыли ее.
Но у нее было основная работа получалось рисовать 3-4 персонажа в месяц.
С музыкой все получилось быстро, нашел на фрилансе девушку, сказал что мне нужно, через неделю она прислала результат, мы обсудили что нужно поправить/добавить и все готово. ИДЕАЛЬНО!
Следующим шагом я начал искать программиста, который соберет игру на движке Unity (насмотрелся на ютьюбе что нужно делать именно на нем и был прав).
А также стал искать обучающие ролики как сделать анимацию персонажам (в интернете много полезных роликов которые могут научить это делать, но есть главное деталь, руки должны расти с правильного места к сожалению, это не про меня…).
Поэтому начал искать фрилансера который сможет мне это сделать, но так некого кто мне понравился по портфолио не подошел (я уверен, что я плохо и не там искал).
На ютьюбе нашел канал, там парень толково обучает анимации на Dragon Bone (это бесплатная программа для создания 2D анимации) недолго думая написал ему, мы договорились 25$ за каждого персонажа, и всю анимацию в игре сделал он на Spine за что ему огромное спасибо.
С программистом было все немного сложнее, так как я не понимал сколько это может стоить, один мне говорит сделаю за 60 000 рублей, второй говорит, что сделает за 7000 рублей. Конечно я выбрал подешевле…
Самое интересное что он все сделал, и оно работало, но на тот момент в игру мы добавили только 5 зверей. А когда потребовалось добавить еще он был то сильно занят, то у него не было желания, то он вообще пропадал на несколько недель. У меня даже возникала мысль заплатить 60000 руб. но где гарантии что не повторится так же.
В общем начал я опять поиски кто сможет добавить новых персонажей в игру за деньги, которые мне по карману.
Нашел парня с Екатеринбурга имеет в gamedevЕ опыт, пообещал все сделать в срок (заключили договор 50% предоплата остальное после релиза игры). Попросил он за работу 20000 рублей, я подумал дорого ну что поделать дешевле только в ущерб качеству.
Единственное увидев работу предыдущего программиста он решил сделать игру с нуля, на цену работы это не повлияло поэтому я был не против.
Если кому интересно что у нас получилось , буду признателен оценке и отзывам, а также советам и рекомендациям по игре
В следующей статье я постараюсь рассказать, как мы решили монетизировать игру и какие совершили ошибки, а также сколько игра принесла за первый месяц публикации.
Если будет интересно обязательно продолжу писать.
Добавляем взаимодействие с экраном
Чтобы показать, как в Android обработать касания, напишем небольшой пример. Будем выходить из программы, когда пользователь коснется нижней части экрана. Если касание произошло где-то выше — будем просто выводить в лог соответствующие координаты. Добавим в класс MainThread следующие строки:
private SurfaceHolder surfaceHolder;private MainGamePanel gamePanel;public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) { super(); this.surfaceHolder = surfaceHolder; this.gamePanel = gamePanel;}
тем самым мы определили переменные gamePanel и surfaceHolder, взяв соответствующие значения из параметров конструктора. Нам нужно запомнить эти значения, чтобы потом иметь возможность блокировать поверхность на время рисования, а это можно сделать только через surfaceHolder.Измените строку в классе MainGamePanel, добабвив в конструктор вновь объявленные параметры
thread = new MainThread(getHolder(), this);
Мы передаем текущий обработчик и панель в новый конструктор. Это позволит нам иметь к ней доступ из потока. В gamePanel мы создадим метод update и будем переключать его из потока, но пока оставим все как есть.
Разработка игрового геймплея и создание оригинального логотипа
Для начала, вам нужно поиграть в разные популярные игры Play маркета и попробовать придумать свою оригинальную идею, которая бы отличалась от всех популярных игр, но и имела бы все их фишки привлекающие игроков. Хорошая идея игры должна быть простой, то есть игра должна иметь приятную минималистичную графику, приятные звуковые эффекты, неоднообразные задания.
В нашем примере будет рассматриваться игра, которая похожа по геймплею на «Jetpack Joyride». Суть такова: двум спаренным гондолам, летящим в пространстве нужно уклоняться от летящих на них препятствий, которые имеют симметричные с их размерами дырами, сквозь которые гондолы должны пролетать.
Ну что же, теперь мы имеем идею, и теперь нужно создать прототип Андроид игры. Прототип не должен иметь ничего лишнего. Вам не потребуется создавать меню, кнопки, прорисовывать графику – это всего лишь создание предварительного геймплея. Вот так выглядит прототип нашей игры:
Именно данный вариант мы будет обрабатывать, модифицировать и стараться улучшить.
Онлайн-сервисы для создания игр на андроид
Как создать игру на андроид? Существует большое количество онлайн-сервисов, которые могут в этом помочь. Преимущество заключается в том, что существуют отдельные платформы, заточенные под создание приложений определенного типа.
Однако стоит учитывать, что большая часть данных сервисов является платными. Средняя стоимость варьируется от 5 до 50 долл.* Далее будут рассмотрены наиболее популярные из них.
LearningApps
LearningApps — один из наиболее популярных сервисов в первую очередь потому, что является бесплатным. Основной функционал направлен на создание обучающих игр и различных приложений. Среди основных преимуществ выделяют:
- работу на наиболее известных языках, в том числе и русском;
- проходить регистрацию на сайте нужно только для создания собственных программ;
- имеется широкий выбор шаблонов для создания игр;
- можно использовать шаблоны других разработчиков, чтобы практиковаться в создании;
- простой и понятный интерфейс;
- имеется 5 полезных инструментов.
Что касается недостатков, то пользователи выделяют:
- достаточно устаревший на сегодняшний день дизайн;
- в русском переводе часто встречаются опечатки и неточности;
- отсутствие полноценной статистики по упражнениям.
ProProfs
Онлайн-сервис ProProfs известен среди пользователей своим большим функционалом. При желании можно создавать как квесты, так и пазлы, кроссворды и т. д. Обладает достаточным количеством достоинств, однако также не лишен недостатков. Среди плюсов выделяют:
- частично платный, частично бесплатный тариф на использование;
- часть создаваемых упражнений не воспринимает кириллицу.
Kahoot
Еще один достаточно известный сервис. Часто используется именно преподавателями. Основные плюсы сервиса заключаются в следующем:
Разумеется, данный сервис не обошелся и без своих минусов, однако их не так много:
- отсутствует возможность вставки текста на другие сайты. Подобное можно сделать только через ссылку;
- имеется платная подписка на некоторую часть функций. Средняя цена составляет 9-10 долл. в месяц.
Работа с Kahoot
Factile
Весьма ограниченный сервис, подходящий для создания приложений по типу «Своя игра» или «Кто хочет стать миллионером». Среди преимуществ выделяют:
- имеется бесплатный тариф, но только по определенному функционалу;
- достаточно недорогой тарифный план, всего 4-5 долл. в месяц;
- простой и понятный интерфейс;
- внешне приятный современный дизайн;
- можно без проблем делиться созданными играми;
- можно создавать до 25 команд участников.
Что касается минусов, то пользователи выделяют следующие:
- отсутствие русского языка в интерфейсе;
- обязательно необходимо пройти регистрацию, чтобы получить доступ к ресурсам;
- бесплатная подписка имеет существенные ограничения по функционалу.
Umaigra
Российский конструктор, предназначенный для создания дидактических игр с применением прототипов. Чем Umaigra выделяется среди остальных сервисов:
- предлагается 8 шаблонов, по которым можно создать и выложить простые, но при этом достаточно увлекательные приложения;
- имеется несколько вариантов упражнений, помогающих создавать игры;
- пользователь может самостоятельно устанавливать уровни сложности и лимитированное время для прохождения задания;
- разумеется, присутствует русский интерфейс;
- предоставляется возможность с легкостью поделиться ссылкой на созданное приложение;
- можно создавать классы и отслеживать статистику прохождения квеста.
Таким образом, положительных моментов хватает. Тем не менее, у Umaigra есть и недостатки. Среди них особенно выделяют:
- сложность и перегруженность интерфейса. Судя по всему, разработчики постарались вложить в свою работу как можно больше, что вызывает проблемы у некоторых пользователей;
- отсутствуют понятные видео инструкции, хотя данную проблему обещали исправить в новой версии;
- обязательна регистрация нового пользователя. Данный процесс занимает достаточно большое количество времени и признается утомительным;
- отсутствует возможностью размещения созданного приложения на сайт, только через ссылку;
- имеется ограничение по количеству игроков, максимальное число колеблется от 6 до 15.
Онлайн-сервис Umaigra
UI Class
UI Class — сервис по созданию приложений по стандартным шаблонам. Имеется достаточно простой и понятный интерфейс, однако разрабатывать с его помощью что-то свое (интересное и новое) будет весьма проблематично. Хорошо подходит для пробы пера и получения основных навыков.
Обратите внимание! При использовании указанных сервисов пользователь скорее сможет освоить начальные элементы и понять, что именно он хочет создать. Зарабатывать на играх, созданных в таком формате, будет весьма проблематично
Разработка идеи
В первую очередь, необходимо выяснить, что вы собираетесь создавать. Если это какое-то приложение, то следует определиться с аудиторией, какие возможности оно будет предоставлять пользователю. Это может быть информационное приложение или программа, предоставляющая такие дополнительные функции, как видео или аудио проигрыватель.
Создать игру немного сложнее, так как магазин приложений переполнен разнообразными играми всех жанров. Создать что-то действительно уникальное и цепляющее трудно, но, не попробовав этого, вы никогда не узнаете. Оформить идею для начала можно на бумаге. Проработайте все детали, выделите ключевые особенности, постарайтесь сделать простую и понятную игру, которая заинтересует пользователя.
Полезным шагом будет изучение потенциальных конкурентов. Просмотрите магазин приложений Google Play, при этом найдите похожие игры. Постарайтесь понять, почему эта игра пользуется такой популярностью, а что в ней можно улучшить. На основе этих наблюдений, вы можете создать собственный проект. Но ни в коем случае не копируйте элементы интерфейса или что-либо другое. Оригинальность и уникальность играют важную роль, при этом влияют на первое впечатление пользователя.
Создание игрового цикла
Теперь у нас есть сырье, необходимое для создания игры, но ничего не происходит. Вот здесь и появляется игровой цикл. По сути, это цикл кода, который проходит по кругу и проверяет входные данные и переменные перед отрисовкой экрана. Наша цель – сделать это как можно более последовательным, чтобы не было заиканий или сбоев в частоте кадров, которые я рассмотрю немного позже.
На данный момент мы все еще находимся в классе MainThread и собираемся переопределить метод из суперкласса. Этот запущен .
И это выглядит примерно так:
Вы увидите много подчеркивания, поэтому нам нужно добавить еще несколько переменных и ссылок. Вернитесь наверх и добавьте:
Не забудьте импортировать Canvas. На самом деле мы будем рисовать холст
Что касается «lockCanvas», это важно, потому что это то, что по сути замораживает холст, чтобы мы могли рисовать на нем. Это важно, потому что в противном случае у вас могло бы быть несколько потоков, пытающихся использовать его одновременно
Просто знайте, что для редактирования холста вы должны сначала заблокировать холст.
Обновление – это метод, который мы собираемся создать, и именно здесь позже произойдет самое интересное.
Попробовать и поймать то время просто требования Java, которые показывают, что мы готовы попробовать и обрабатывать исключения (ошибки), которые могут возникнуть, если полотно не готово и т.д.
Наконец, мы хотим иметь возможность запускать наш поток, когда нам это нужно. Для этого нам понадобится еще один метод, который позволит нам привести в движение вещи
Для этого и предназначена текущая переменная (обратите внимание, что логическое значение – это тип переменной, которая всегда может быть истинной или ложной). Добавьте этот метод в класс MainThread :
Но на этом этапе следует выделить одну вещь, а именно обновление. Это потому, что мы еще не создали метод обновления. Так что вернитесь в GameView и добавьте метод.
Нам также нужно запустить ветку! Мы собираемся сделать это в нашем методе surfaceCreated :
Нам также нужно остановить поток, когда поверхность разрушена. Как вы уже догадались, мы обрабатываем это в методе surfaceDestroyed. Но поскольку на самом деле может потребоваться несколько попыток для остановки потока, мы собираемся поместить это в цикл и снова использовать try and catch. Вот так:
И, наконец, перейдите к конструктору и убедитесь, что вы создали новый экземпляр вашего потока, иначе вы получите ужасное исключение нулевого указателя! А затем мы сделаем GameView настраиваемым, то есть он может обрабатывать события.
Теперь вы, наконец, можете протестировать эту штуку! Правильно, нажмите «Выполнить», и он действительно должен работать без ошибок. Приготовьтесь к тому, чтобы вас сдул!
Это … это … пустой экран! Весь этот код. Для пустого экрана. Но это пустой экран возможностей. Ваша поверхность настроена и работает с игровым циклом для обработки событий. Теперь все, что осталось, – это заставить все происходить. Даже не имеет значения, если вы не выполнили все в руководстве до этого момента. Дело в том, что вы можете просто переработать этот код, чтобы начать создавать великолепные игры!
Попробуйте применить принцип «Easy to learn, hard to master»
Это классический совет в геймдизайне: научиться играть должно быть очень просто, но достичь совершенства — крайне сложно, практически невозможно. Это и приковывает к игре. «Этот принцип особенно важен для мобильных free-to-play проектов, потому что у разработчика есть не более 10 минут, чтобы зацепить игрока. Большинство пользователей удалят игру после первой же непонятной ситуации и больше никогда не запустят приложение. Человек сразу должен понять, как играть и в чем цель», — рассказывает Михаил Шагин.
Авторство этого принципа приписывают Нолану Бушнеллу, создателю компании Atari. В оригинале он звучал так: «All the best games are easy to learn and difficult to master. They should reward the first quarter and the hundredth». Нолан Бушнелл сказал это в 1971 году в контексте игровых автоматов Atari. «В те времена игровые автоматы были в новинку, и простота игр была критичной для пользователя. Особого игрового опыта ни у кого не было, и для коммерческого успеха было необходимо, чтобы у игрока были ассоциации из реальной жизни», — объясняет Алексей Рыбаков, руководитель мобильной разработки DataArt.
Прообразом известной игры Atari — Pong — послужил теннис. В ее основу заложены простые физические принципы: угол падения равен углу отражения и подобные. Она позволяла перенести реальный опыт в компьютерную игру, поэтому ее просто было понять начинающему игроку в 1971 году. Но с ускорением мяча при переходе на уровень выше она становилась все сложнее и сложнее (hard to master) и заставляла играть вновь и вновь.
Геймдизайнер Роб Прадо придумал еще одну вариацию принципа: «Easy to learn and almost impossible to master». Алексей Рыбаков объясняет: «Идея в том, что достаточно просто собрать стаф, необходимый для получения нового игрового предмета или уровня. На примере StarCraft — легко отправить все свои войска и разрушить базу. Но по мере продвижения по сюжету у игрока должны появляться новые возможности, предметы, юниты. Все это, плюс взаимодействие с реальными игроками, приведет к тому, что игру можно будет проходить в огромном количестве вариантов. Игрок будет возвращаться к ней многократно».
Этот принцип — не гарантия успеха. Но практически любое решение, которое будет заставлять человека возвращаться в игру, оправдывает себя.
Пример разработки простой 2D-игрушки Андроид
Наша игра Android Studio развивается по известному сюжету. Пользователь управляет космическим кораблем, уворачивающимся от метеоритов (астероидов). Последние падают с верхней части экрана, корабль – движется внизу вправо или влево, в зависимости от решений участника. При столкновении аппарата с космическим объектом объявляется Game Over.
Начнем с открытия проекта. Для этого последовательно выберем в меню программы File, New, New Project. Придумываем проекту название, вводим домен и место, где будет храниться папка. Окно, появившееся после нажатия Next, лучше оставить без изменений. В следующем выбираем Empty Activity и движемся дальше. Кликнув по клавише Finish, мы получим готовый проект.
Следующим шагом станет скачивание необходимых картинок и копирование их в папку drawable. Это изображения корабля и метеоров. После этого нужно создать layout. Открываем Text в activity_main.xml и вставляем следующий код:
Код для layout
MainActivity, GameView, SpaceBody
Для редактирования класса MainActivity меняем определение, придав ему следующий вид: public class MainActivity extends AppCompatActivity implements View.OnTouchListener {. После этого нужно задать перемены для нажатия левой (public static boolean isLeftPressed = false) и правой (public static boolean isRightPressed = false) кнопок. Следующие действия мы расписывать не будем. В итоге MainActivity должен принять следующий вид:
Код для MainActivity
Разобравшись с классом MainActivity, переходим к GameView. В определение добавляем extends SurfaceView implements Runnable. Теперь нужно задать разрешение. У современных гаджетов разные параметры. Дисплей старого мобильника не может сравниться с новым большим планшетом.
Чтобы добиться одинакового изображения на любом устройстве, поделим монитор на одинаковые «клетки» 20х28 (первый показатель – горизонталь). Если эти части будут распределены неравномерно, картинка получится сжатой или растянутой. Задаем переменные:
Переменные для «уравнивания» графики
Для метода run() устанавливается бесконечный цикл, стартующий с update(). Задачей последнего является вычисление новых координат космического корабля. По окончании расчетов на экране будет сформирован сам аппарат (draw()). Control() завершает цикл, обеспечивая паузу на 17 миллисекунд. Затем снова запускается run(). Выглядеть это будет так:
Бесконечный цикл для run()
Чтобы появился сам корабль и астероиды, нужен родительский class SpaceBody. Зададим переменные и методы:
Код для родительского класса SpaceBody
Теперь отдельный класс Ship для корабля:
Код космического корабля
После этого останется произвести компиляцию и запуск программы. На дисплее Android Studio должен возникнуть корабль, который можно кнопками перемещать вправо и влево. Следующим шагом станет добавление астероидов. Для этого разработаем class Asteroid, тоже являющийся дочерним для SpaceBody. Зададим переменные:
Код для метеоров
Суть в том, чтобы астероиды произвольно возникали в разных точках «потолка» экрана и двигались с непредсказуемой скоростью. Мы задали код, определяющий столкновение метеоров с кораблем. Добавим астероиды в GameView:
Вписываем астероиды в GameView
На этом изготовление элементарной 2D-игры можно считать завершенным. Остается скомпилировать и запустить программу. Ничто не мешает добавлять в нее новые опции. Например, стрельбу по метеорам или постоянное ускорение их движения. Но это уже тема отдельного разговора.
Приложения для создания игр
Самый простой и доступный способ – это скачать приложение для создания игр в Гугл Плей, да, игра получится простенькая, но нужно же с чего-то начинать.
1. Draw Your Game (Нарисуй Свою Игру)
Удобная программа, которая предоставляет всем и каждому возможность в несколько простых шагов создать свою собственную видеоигру.
- Нарисуйте мир своей игры на листе бумаги, используя четыре различных цвета (черный, синий, зеленый и красный).
- С помощью приложения сфотографируйте свой рисунок.
- Подождите 10 секунд, пока DYG превратит рисунок в игру.
- Играйте в свою игру, управляя ее персонажем.
- Поделитесь своим творчеством с другими пользователями.
2. Apper (Создай свою программу)
С помощью Apper вы сможете создавать и публиковать свои собственные приложения 5 простых шагов. Программа очень простая в использовании и не требует знаний программирования.
Приложение является бесплатным, но для публикации своего проекта в App Store или Google Play, вам необходимо приобрести платную подписку. Для полноценной работы рекомендуется минимум 1 ГБ оперативной памяти и возможностью загрузки изображений через WiFi.
3. AIDE- IDE for Android Java C++
Является интегрированной средой разработки (IDE) для создания реальных приложений для Android прямо на вашем Android устройстве. Следуйте урокам, чтобы стать экспертом и применять эти навыки в своих собственных приложениях.
Основные функции:
- Совместимость с проектами Eclipse.
- Java / XML и Android SDK.
- C / C ++ и Android NDK.
- Java консольные приложения.
- Синхронизация с Dropbox.
4. Epic Game Maker
Уникальный 2D платформер и песочница с редактором уровней. С помощью данной игры вы сможете создавать свои увлекательные игры за считанные минуты, делиться ими с друзьями и прославиться. Без навыков программирования, всё что нужно — это лишь ваше воображение. Создавайте уровни и делитесь своими творениями с другими игроками.
Основные возможности:
- Возможность рисовать уровни.
- 5 различных видов тем.
- Разнообразная механика.
- Пиксельное оформление.
- Сообщество в FaceBook.
5. STRUCKD – 3D Конструктор Игр
Объединяет в себе игровое сообщество и продвинутую площадку, в которой можно создавать уникальный 3D мир и обмениваться своими творениями с другими людьми. На выбор доступны жанры, начиная от гоночных игр и заканчивая Tower Defense и Action Puzzlers.
ФУНКЦИИ:
- 3D игровой конструктор с drag-and-drop.
- Коллекция из нескольких тысяч созданных другими пользователями игр.
- Игровое сообщество: ставьте рекорды и поднимайтесь в турнирной таблице.
6. Sketch Nation Create
Ещё одна неплохая платформа для создания онлайн игр. Теперь вы можете делать настоящие многопользовательские игры в режиме реального времени и играть в них со своими друзьями. Приложение позволяет создавать от самых простых, до более продвинутых игр, используя различные жанры, благодаря чему сервис подойдёт не только для детей, но и студентов, и даже педагогам.