Как сделать свою игру на Андроид программа

Как создать игру на Андроид

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

Создаем игру на Android

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

Способ 1: Онлайн-сервисы

На просторах интернета находится множество вспомогательных сервисов, где присутствуют заранее созданные шаблоны игр по жанрам. Пользователю же нужно только добавить изображения, настроить персонажей, мир и дополнительные опции. Осуществляется такой метод без каких-либо знаний в области разработки и программирования. Давайте разберем процесс на примере сайта AppsGeyser:

КАК СОЗДАВАТЬ ИГРЫ на ТЕЛЕФОНЕ? Обзор ДВИЖКОВ #1

  1. Перейдите на главную страницу сервиса по ссылке выше или через поиск в любом удобном браузере.
  2. Нажмите на кнопку «Создать». Перейти к созданию проекта в AppsGeyser
  3. Выберите жанр проекта, который хотите сделать. Мы рассмотрим обычный раннер. Выбор типа приложения в AppsGeyser
  • Ознакомьтесь с описанием жанра приложения и переходите к следующему шагу. Ознакомиться с описанием игры в AppsGeyser
  • Добавьте изображения для анимации. Вы можете нарисовать их самостоятельно в графическом редакторе или загрузить из интернета. Добавить картинки анимаций в AppsGeyser
  • Выберите врагов, если это необходимо. Вам нужно только указать их количество, параметр здоровья и загрузить картинку. Добавить противников в AppsGeyser
  • Каждая игра имеет главную тему, которая отображается, например, при входе или в главном меню. Кроме этого присутствуют различные текстуры. Добавьте эти изображения в категории «Background and game images». Добавить изображения игры в AppsGeyser
  • Как создать игру без кода на телефоне! #shorts

  • Кроме самого процесса каждое приложение отличается использованием подходящей под жанр музыки и оформления. Добавьте шрифты и файлы аудио. На странице AppsGeyser вам предоставят ссылки, где можно загрузить бесплатную музыку и шрифты, не защищенные авторским правом. Добавить музыку и шрифты в AppsGeyser
  • Назовите свою игру и переходите далее. Название игры в AppsGeyser
  • Добавьте описание, чтобы заинтересовать пользователей. Хорошее описание способствует увеличению количества загрузок приложения. Описание игры в AppsGeyser
  • Последним шагом является установка иконки. Она будет отображаться на рабочем столе после инсталляции игры. Иконка игры в AppsGeyser
  • Сохранить и загрузить проект можно только после регистрации или входа в AppsGeyser. Выполните это и следуйте далее. Регистрация на сайте AppsGeyser
  • Сохраните приложение, нажав на соответствующую кнопку. Сохранить игру в AppsGeyser
  • Теперь вы можете опубликовать проект в Google Play Market за небольшую плату в двадцать пять долларов. Опубликовать игру в AppsGeyser
  • На этом процесс создания завершен. Игра доступна к скачиванию и работает корректно, если все изображения и дополнительные опции были заданы верно. Делитесь ею с друзьями через Плей Маркет или отправляйте в виде файла.

    Способ 2: Программы для создания игр

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

    Как сделать свою игру на андроид программа

    По данным Admob , 62% пользователей смартфонов устанавливают игру в течение первой недели после покупки устройства, однако лишь немногие мобильные игры могут окупить затраты на разработку. Создание приложений для Android имеет определенные особенности:

    • только 3% игроков тратят деньги в мобильных приложениях;
    • 80% продаж магазинов приложений составляют именно игры;
    • в 2010 году объем рынка мобильных игр оценивался в 33 миллиарда долларов;
    • в 2017 году выручка от мобильных игр превысила 50 миллиардов долларов, что составляет 43% всего мирового игрового рынка;
    • женщины в возрасте от 35 до 44 лет являются основными потребителями мобильных игр;
    • в 2015 году в США насчитывалось почти 165 миллионов игроков, использующих только мобильные устройства. Ожидается, что в 2021 году их количество увеличится до 213 миллионов

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

    Популярные жанры

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

    📱 Как начать разрабатывать мобильные игры для Android?

    MOBA

    Multiplayer Battle Arenas представляет собой смесь стратегии в реальном времени и экшена. Игроку предоставляется контроль над одним персонажем, известным как «чемпион» или «герой», которого можно выбрать из большого списка. Нужно собрать команду и разрушить базу противников, защищая собственную.

    Arena of Valor, Vainglory и Mobile Legends входят в тройку лучших MOBA для телефонов и планшетов. В 2017 году в Arena of Valor было 200 миллионов уникальных игроков, а ежедневное среднее их количество игроков достигло 80 миллионов, что сделало игру самой популярной в мире.

    Battle Royale

    Battle Royale сочетает выживание с разведкой, собирая большое количество игроков с минимальным снаряжением для поиска оружия и устранения противников. Цель игры – стать последним выжившим. Идея частично вдохновлена ​​японским фильмом ужасов « Королевская битва » 2000 года. Игрок соперничает с конкурентами, пытаясь оставаться в безопасной зоне, которая со временем сужается. Победителем становится последний выживший.

    В наши дни крупные стримеры на Twitch транслируют одну или несколько игр Battle Royale, что является причиной массового притока новичков в возрасте преимущественно от 8 до 14 лет. Обычно приложения Battle Royale бесплатны и монетизируются за счет продажи внутриигровых предметов как и MOBA.

    Читайте также:
    Гринвей антипаразитарная программа как принимать

    MMORPG

    Многопользовательские ролевые онлайн-игры – это онлайн-RPG, в которой игроки повышают уровень персонажей и приобретают новые способности. При этом сотни аккаунтов одновременно взаимодействуют друг с другом в одном мире и в режиме реального времени.

    Мобильные MMORPG – упрощенные версии ПК-аналогов, здесь игроки не хотят тратить часы и месяцы на изучение механики. Некоторые мобильные MMORPG чрезвычайно популярны: например, Arcane Legends и Dungeon Hunter 5 .

    Головоломки

    Более половины пользователей смартфонов и планшетов играют в головоломки. Candy Crush и Tetris популярны даже среди аудитории, которая не идентифицируют себя как геймеров. Логические игры сосредоточены на простых для понимания, но сложных в освоении механиках и требуют использования быстрого мышления.

    Казуальные игры

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

    📱 Как начать разрабатывать мобильные игры для Android?

    Выбор движка

    Как только у вас появится идея игры, стоит определиться с инструментами разработки. Можно написать приложение с нуля на Java или Kotlin в Android Studio или использовать веб-интерфейс из стандартного стека HTML5, JavaScript и CSS. В качестве примера такого подхода приведем пошаговое создание легендарной игры Bejeweled на jQuery . Д ля более масштабных проектов стоит присмотреться к специальным движкам.

    Unity

    Unity – интуитивно понятный движок с широким набором функций для разработки кроссплатформенных мобильных игр. Он поддерживает импорт из 3dsMax, Maya, Softimage, CINEMA 4D, Blender.

    Хотя Unity интегрируется со всеми основными 3D-приложениями, внутренние его возможности для редактирования имеют множество ограничений. За исключением некоторых примитивных форм, все должно быть создано с помощью сторонней программы. С новой 64-битной архитектурой и поддержкой WebGL, Unity 5 считается сильным решением. Это одна из наиболее часто используемых платформ, так что вы легко найдете в сети множество учебных пособий и руководств .

    Unreal

    Unreal Engine 4 – последняя на данный момент версия движка UDK, выпущенного Epic Games. В нем есть возможности разработки игр для мобильных устройств, ПК и консолей. UE4 обеспечивает потрясающие графические возможности, вроде расширенного динамического освещения или одновременной обработки до миллиона частиц в сцене.

    В новом движке Unreal Engine 4 много изменений по сравнению с предыдущими версиями. В качестве языка сценариев используется C++, который полностью заменил популярный некогда UnrealScript, а Kismet заменен более удобной системой Blueprint. Из-за этих перемен даже опытным дизайнерам игр придется пройти обучение, чтобы освоить обновленную версию.

    Unreal поставляется с инструментами для использования технологий виртуальной и дополненной реальности для разработки мобильных игр. В «Библиотеке программиста» вы найдете подробный туториал по созданию первого объекта и освоению Unreal Engine 4.

    Solar2D

    Solar2D ранее был известен как Corona SDK – это кроссплатформенный инструмент разработки, использующий язык сценариев Lua . Corona Market Place содержит множество плагинов для игр 2D. Движок славится четкой документацией и активным сообществом, а о дним из недостатков Solar2D является отсутствие инструментов 3D-моделирования.

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

    📱 Как начать разрабатывать мобильные игры для Android?

    Основные этапы разработки

    Чтобы создать мобильную игру под Android, нужно пройти определенные этапы. Предлагаем вашему вниманию пошаговый план для начинающих:

    Идея и план

    Идея – самый сложный и ответственный шаг к созданию успешной мобильной игры. Ключ к поиску идеи – придумать что-то новаторское и увлекательное. Идея должна понравиться массовой аудитории.

    Распространенный прием – модифицировать существующую идею вместо того, чтобы придумывать новую с нуля. И побольше импровизировать.

    Правильное планирование или его отсутствие могут обеспечить успех или провал проекта. Найдите время, чтобы записать идеи, придумать уникальных персонажей, поиграть с разными стилями и подумать о типе игрового процесса, который сделает вашу игру увлекательной. Раскрыть потенциал проекта поможет история: в игровом мире она имеет огромное значение. Чтобы пройти путь до конца, пользователю нужна цель, а для этого понадобится история, какой бы простой та ни была.

    Выбор языка и инструментов

    Вы можете выбрать любой движок и подход к разработке, в любом случае придется засесть за изучение языка программирования. Отличным началом может стать C# , Kotlin или Java .

    Графика

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

    Для создания деталей стоит овладеть основами Photoshop и/или GIMP для 2D, а также 3dsMax и/или Blender для 3D-моделей.

    Работа в команде

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

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

    Тестирование, запуск и монетизация

    Перед запуском игры ее стоит всесторонне протестировать, но не стоит на этом зацикливаться. Многие начинающие разработчики чересчур усердно пытаются сделать программу идеальной, все время задерживая выпуск. Это серьезная ошибка – лучше быстрее выпустить релиз без критичных багов. Если игра понравится аудитории, ее можно будет улучшить.

    Стоит подумать и о монетизации проекта. Существует несколько распространенных способов о ней позаботиться:

    • Покупки в приложении. Модель Freemium – самый распространенный метод монетизации мобильных игр.
    • Реклама. Во многих играх реклама сочетается с покупками в приложении. Эта стратегия может принести значительный доход.
    • Премиум-версии. Можно предложить игрокам бесплатную демо-версию и попросить заплатить за дальнейшее использование.
    Читайте также:
    Системные требования для программ 3d моделирования

    Развитие проекта

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

    Стремительное развитие смартфонов за 10 лет изменило игровую индустрию кардинально. От простых карманных консолей Game Boy мобильные игры эволюционировали до многопользовательских платформ со сложной механикой и интересной визуальной составляющей. Это не должно вас пугать: даже простые проекты в стиле платформеров и казуальных игр могут найти свою аудиторию благодаря доступности и простому управлению.

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

    Источник: proglib.io

    Туториал: Создание простейшей 2D игры на андроид

    Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 2D игру на анроиде без использования каких-либо игровых движков. Для этого я использовал Android Studio, но можно использовать любую другую соответствующее настроенную среду разработки.

    Шаг 1. Придумываем идею игры
    Для примера возьмём довольно простую идею:

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

    Если метеорит попадает в него — игра окончена.

    Шаг 2. Создаём проект
    В Android Studio в верхнем меню выбираем File → New → New Project.

    Тут вводим название приложения, домен и путь. Нажимаем Next.

    Тут можно ввести версию андроид. Также можно выбрать андроид часы и телевизор. Но я не уверен что наше приложение на всём этом будет работать. Так что лучше введите всё как на скриншоте. Нажимаем Next.

    Тут обязательно выбираем Empty Activity. И жмём Next.

    Тут оставляем всё как есть и жмём Finish. Итак проект создан. Переходим ко третьему шагу.

    Шаг 3. Добавляем картинки

    Скачиваем архив с картинками и распаковываем его.

    Находим папку drawable и копируем туда картинки.

    Позже они нам понадобятся.

    Шаг 4. Создаём layout

    Находим activity_main.xml, открываем вкладку Text и вставляем туда это:

    На вкладке Design видно как наш layout будет выглядеть.

    Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать тут.

    Шаг 5. Редактируем MainActivity класс

    В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:

    public class MainActivity extends AppCompatActivity implements View.OnTouchListener

    Добавим в класс нужные нам статические переменные (переменные класса):

    public static boolean isLeftPressed = false; // нажата левая кнопка public static boolean isRightPressed = false; // нажата правая кнопка

    В процедуру protected void onCreate(Bundle savedInstanceState) добавляем строки:

    GameView gameView = new GameView(this); // создаём gameView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout gameLayout.addView(gameView); // и добавляем в него gameView Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch) rightButton.setOnTouchListener(this);

    Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
    Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
    GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.

    Теперь добавляем процедуру:

    public boolean onTouch(View button, MotionEvent motion) < switch(button.getId()) < // определяем какая кнопка case R.id.leftButton: switch (motion.getAction()) < // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isLeftPressed = true; break; case MotionEvent.ACTION_UP: isLeftPressed = false; break; >break; case R.id.rightButton: switch (motion.getAction()) < // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isRightPressed = true; break; case MotionEvent.ACTION_UP: isRightPressed = false; break; >break; > return true; >

    Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:

    Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.

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

    Шаг 6. Создаём класс GameView

    Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560.

    Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.

    public static int maxX = 20; // размер по горизонтали public static int maxY = 28; // размер по вертикали public static float unitW = 0; // пикселей в юните по горизонтали public static float unitH = 0; // пикселей в юните по вертикали

    unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:

    private boolean firstTime = true; private boolean gameRunning = true; private Ship ship; private Thread gameThread = null; private Paint paint; private Canvas canvas; private SurfaceHolder surfaceHolder;

    Читайте также:
    Программа которая копирует файлы по расписанию

    Конструктор будет таким:

    public GameView(Context context) < super(context); //инициализируем обьекты для рисования surfaceHolder = getHolder(); paint = new Paint(); // инициализируем поток gameThread = new Thread(this); gameThread.start(); >

    Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
    который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:

    Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.

    Шаг 7. Создаём класс SpaceBody

    Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:

    protected float x; // координаты protected float y; protected float size; // размер protected float speed; // скорость protected int bitmapId; // id картинки protected Bitmap bitmap; // картинка
    void init(Context context) < // сжимаем картинку до нужных размеров Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId); bitmap = Bitmap.createScaledBitmap( cBitmap, (int)(size * GameView.unitW), (int)(size * GameView.unitH), false); cBitmap.recycle(); >void update() < // тут будут вычисляться новые координаты >void drow(Paint paint, Canvas canvas)< // рисуем картинку canvas.drawBitmap(bitmap, x*GameView.unitW, y*GameView.unitH, paint); >

    Шаг 8. Создаём класс Ship

    Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.

    public Ship(Context context) < bitmapId = R.drawable.ship; // определяем начальные параметры size = 5; x=7; y=GameView.maxY — size — 1; speed = (float) 0.2; init(context); // инициализируем корабль >

    и переопределим метод update()

    На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды.

    При столкновении с кораблём игра заканчивается.

    Шаг 9. Создаём класс Asteroid

    Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.

    Добавим нужные нам переменные:

    private int radius = 2; // радиус private float minSpeed = (float) 0.1; // минимальная скорость private float maxSpeed = (float) 0.5; // максимальная скорость

    Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.

    public Asteroid(Context context)

    Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.

    Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.

    public boolean isCollision(float shipX, float shipY, float shipSize) < return !(((x+size) < shipX)||(x >(shipX+shipSize))||((y+size) < shipY)||(y >(shipY+shipSize))); >

    Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.

    ((x+size) < shipX) — корабль слева от астероида.
    (x > (shipX+shipSize)) — корабль справа от астероида.
    ((y+size) < shipY) — корабль сверху астероида.
    (y > (shipY+shipSize)) — корабль снизу астероида.

    Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.

    Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.

    Про определение пересечения более сложных фигур можно почитать тут.

    Шаг 10. Добавляем астероиды в GameView

    В GameView добавляем переменные:

    private ArrayList asteroids = new ArrayList<>(); // тут будут харанится астероиды private final int ASTEROID_INTERVAL = 50; // время через которое появляются астероиды (в итерациях) private int currentTime = 0;

    также добавляем 2 метода:

    private void checkCollision() < // перебираем все астероиды и проверяем не касается ли один из них корабля for (Asteroid asteroid : asteroids) < if(asteroid.isCollision(ship.x, ship.y, ship.size))< // игрок проиграл gameRunning = false; // останавливаем игру // TODO добавить анимацию взрыва >> > private void checkIfNewAsteroid()< // каждые 50 итераций добавляем новый астероид if(currentTime >= ASTEROID_INTERVAL)< Asteroid asteroid = new Asteroid(getContext()); asteroids.add(asteroid); currentTime = 0; >else < currentTime ++; >>

    И в методе run() добавляем вызовы этих методов перед вызовоом control().

    Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().

    private void update() < if(!firstTime) < ship.update(); for (Asteroid asteroid : asteroids) < asteroid.update(); >> >

    Такой же цикл добавляем и в метод draw().

    private void draw() < if (surfaceHolder.getSurface().isValid()) < //проверяем валидный ли surface if(firstTime)< // инициализация при первом запуске firstTime = false; unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните unitH = surfaceHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); // добавляем корабль >canvas = surfaceHolder.lockCanvas(); // закрываем canvas canvas.drawColor(Color.BLACK); // заполняем фон чёрным ship.drow(paint, canvas); // рисуем корабль for(Asteroid asteroid: asteroids) < // рисуем астероиды asteroid.drow(paint, canvas); >surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas > >

    Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
    Если кто-то запутался или что-то не работает можно скачать исходник.

    Игра, конечно, примитивна. Но её можно усовершенствовать, добавив новые функции. В первую очередь следует реализовать удаление вылетевших за пределы экрана астероидов. Можно сделать чтобы корабль мог стрелять в астероиды, чтобы игра постепенно ускорялась, добавить таймер, таблицу рекордов и прочее. Если это будет вам интересно — напишу продолжение, где всё это опишу.

    На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.

    • Разработка игр
    • Разработка под Android

    Источник: habr.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru