Как сделать 2д приложение
Всем привет, с вами Михаил Беркут и это топ 5 программ для создания 2д игр без программирования. Благодаря данному видео вы сможете с легкостью выбрать конструктор или даже движок себе по душе. Погнали
Самая главная особенность - быстрое создание игр. Для этого авторы конструктора выбрали многим известный обучающий визуальный язык программирования Scratch, но это никак не уменьшает возможностей, ведь для профессионалов дали вариант написания кода на AS3.
И еще, что очень немаловажно - развивающееся сообщество. "StencylForge" - позволяет совместно делать игры с людьми, находящимися далеко. Тут нам и чат и поддержка, причем все это предоставляется на бесплатной инициативе. К сожалению, Stencyl имеет достаточно низкие возможности при создании игр, а также открытый исходный код не предоставляется
На 4 месте топа оказывается Unity. Это передовой игровой движок от компании Unity Technologies, позволяющий разрабатывать не только 2D, но и 3D-игры. По мнению большинства инди-разработчиков игр на данный момент это лучшая платформа разработки игр.
На официальном сайте движка имеются бесплатные обучающие материалы, проекты, онлайн-обучение и документация. У движка очень большое сообщество пользователей, поэтому вы можете черпать ответы, советы и вдохновение на официальных и неофициальных форумах. Но про Юнити я и так уже упоминал в предыдущем топе, поэтому идем дальше
А в тройку лидеров входит Rpg Maker. RPG Maker MV – это конструктор ролевых 2D-игр в японском стиле (jRPG) от компании Enterbrain. По своей сути данный конструктор игр является идейным продолжателем серии RPG Maker и RPG Maker VX ACE в частности, поэтому сравнивать его возможности стоит с этой серией и её предыдущим релизом. Программа достаточна проста для ребёнка, в то же время способна дать всё необходимое для продвинутого разработчика игр. Она рассчитана на создание игр без программирования, но имеется и специальный скриптовой язык для расширенного редактирования и реализации любых специфических возможностей. Движок работает на JavaScript с возможностью компиляции игр в формат HTML5. Опытные пользователи могут редактировать все части кода игры без каких-либо скрытых классов. С помощью скриптов вы можете на нём сделать практически любой жанр игр. RPG Maker MV в стартовом пакете уже содержит набор ресурсов для создания первой игры. Всего более 100 шаблонов карт, генератор персонажей и мн.др. Карты, кстати, теперь имеют несколько слоёв для более качественного создания пейзажей с возможностью накладывать тайлы оформления друг на друга.
Программа запускается на Windows и теперь Macintosh. А игры в ней делаются для Windows, Mac, Android, iOS, HTML 5 для Web-браузеров.
Для управления поддерживается клавиатура, мышь и тачпад для манипуляций пальцами на сенсорных экранах. Добавлен Plugin Manager для более удобного подключения дополнений. Добавлен и инструмент поиска событий, который был в RPG Maker 2003, но позже не включался в инструментарий новых версий конструктора. А он очень удобен для быстрого и удобного поиска нужных событий, когда игра разрастается до больших размеров.
К плюсам RPG Maker MV можно отнести то, что программа проста в освоении, несмотря на максимальный функционал, заточенный под специфику жанра 2D jRPG. В нём уже есть шаблоны для быстрого старта, а стандартные менюшки создаются автоматически, вам достаточно только отредактировать их по своему вкусу. К минусам данной программу отнесу достаточно низкое разрешение экрана и лишь один возможный жанр ваших будущих игр.
2- е место в нашем топе занимает Game Maker - это один из самых известных и удобных конструкторов игр. Создание игр в нем достаточно простое и не требует предварительного знакомства с каким либо из языков программирования.
Игра в GameMaker строится как набор игровых объектов, поведение которых задаётся путём программирования реакции на события. Программировать можно, используя графическое представление программ. Это представление отличается от обычного, например, тем, что для того чтобы начать условный оператор, нужно перетащить на панель действия восьмиугольник с иконкой, обозначающей тип проверки, а затем, возможно, ввести какие-либо значения в появившуюся форму. Имеется в нём и скриптовый язык GML похожий на JavaScript.
Рассчитан в основном он на создание двухмерных (2D) игр любых жанров. Также подойдёт для создания различных презентаций и т.п. Начиная с 6-й версии появилась ограниченная возможность работать с 3D. Для разработки 3D игр в Game Maker’е необходимо использовать встроенный язык программирования Game Maker Language.
Имеется экспортёр любых ресурсов GM. Есть встроенная в интерфейс система обучения, которая поможет новичкам по шагам создать свою игру на Game Maker. Конструктор очень прост в освоении, например, механику платформенной 2D игры на нём можно создать за пару минут. В сети очень много примеров, уроков и движков с игровой механикой для GM.
Game Maker распространяется на условиях Shareware, бесплатная версия ограниченна в функциональности, а при запуске игр показывается лого Game Maker’а. В Lite-версия GM ограничена в возможностях, она доступна для свободного скачивания. Pro-версия продаётся за 39$, в ней включены все функции, а также возможность разрабатывать коммерческие игры.
Этот конструктор игр может быть рекомендован для изучения программирования детьми. Легкость освоения и программирования на GML постоянно привлекает все новых и новых создателей игр (так называемых игроделов). К недостатком данной программы отнесу недостаточную оптимизацию для больших игр, слишком высокую цену на приобретение лицензии и мало функциональное API по сравнению с полноценными движками.
А 1-е место нашего топа занимает Construct 2 – это конструктор 2D-игр, позволяющий разрабатывать игры любого жанра и направленности в формате технологии HTML5. Он достаточно прост в освоении и удобен в использовании, благодаря чему любой желающий создать свою игру сможет это сделать даже без знаний в программировании. Данный конструктор подойдёт не только для начинающих, но и для профессионалов, желающих отойти от технологии Flash к HTML5, которые хотят сделать качественные web-игры, либо прототипы. Получаемые посредством Construct 2 игры поддерживаются популярными web-браузерами и мобильными устройствами ОС типа Android или iOS.
Основной редактор этого конструктора позволяет за несколько кликов выполнить нужные задачи, благодаря чему разработка игры происходит считанные минуты. Удобный интерфейс спроектирован для быстрой работы. А тестирование на мобильных системах может осуществляться немедленно посредством LAN-передачи Wifi. Игры, созданные в Construct 2, благодаря технологии HTML5 можно интегрировать в популярные социальные сети, типа Facebook. Поддерживается экспорт Chrome Web Store.
Для осуществления физических законов в играх используется популярный движок Box 2D Physics, позволяющий реализовывать великолепные физические эффекты за несколько щелчков. Также имеются специальные плагины, расширяющие основные возможности конструктора.
На официальном сайте конструктора имеются полезные в освоении материалы: уроки и руководства, пакеты с ресурсами. Одним из главных плюсов данной системы разработки можно считать большое комьюнити, которое производит множество уроков и примеров, которые, безусловно, способствуют быстрому освоению и решению поставленных задач.
Ну а если кто то по вашему достоин попасть в этот топ, то не торопитесь ставить дизлайк, а просто напишите свою версию топа в комментариях. На этом у меня все, всем спасибо за просмотр, если вам понравился этот ролик, то не забудьте поставить лайк и подписаться на мой канал. Удачи!
Курсы и туториалы по созданию двумерных игр — вторая статья из цикла «Разработка».
Автор: Дмитрий Старокожев. Начал программировать на пятом курсе университета, влюбился в Objective-C и разработку под iOS, после чего попал в Pixonic. Работает ведущим разработчиком на проекте War Robots, а в свободное время преподаёт.
Вероятно, в ближайшее время кто-то из читателей этого цикла статей напишет первую строчку кода своего будущего прототипа. Потому что с движком мы уже определились и переходим к практике.
Учить программированию в одной статье нет смысла. К тому же, руководств в интернете множество. Многие наверняка будут делать свои первые прототипы в 2D — на этой теме и сконцентрируемся сегодня.
Если вы решили делать сразу в 3D, не спешите закрывать страницу — знания всё равно пригодятся. Приступим.
2D. Звучит олдскульно, правда? В наши дни разработка двумерных игр приобретает какой-то особый шарм. Чувствуешь себя ценителем, которому открылась недоступная другим истина. Но одного чувства прекрасного недостаточно — у разработки в 2D есть множество нюансов.
Очевидно, что главная особенность двухмерных игр — отсутствие третьего измерения. Как определить, кто ближе к зрителю: машина, куст или огромный боевой робот? Чтобы решить эту проблему, во всех 2D-движках предусмотрен механизм сортировки спрайтов — то есть двумерных графических объектов — по оси Z. Он может называться Z-order или Sorting Layers — в любом случае, с его помощью можно перемещать объекты со слоя на слой.
Другими словами, проблема уже решена за нас. Можно не тратить силы на изобретение велосипеда, а обратить свое внимание на особенности конкретных движков и жанров.
Для разработки прототипа звуки и анимация в большинстве случаев не так важны. Но нужно понимать, что работа с ними в 2D значительно отличается от 3D. В трёхмерном мире анимация скелетная: у каждой модели есть «скелет» (rig). Двигая его участки, разработчик анимирует модель.
А в 2D анимация создаётся покадрово: нужно создать атлас изображений, чтобы они стали последовательностью кадров анимации (sprite sheet). Уолт Дисней всё делал кистью и роллером, и это были шедевры (с). Этим же способом можно создавать очень красивых рисованных персонажей. Как в Cuphead, которая разрабатывалась на Unity.
А вот со звуком в 2D всё проще. Если при отрисовке мира отсутствие третьего измерения накладывает ограничения, то работа со звуком, наоборот, упрощается. Не нужно учитывать расстояние от слушателя (персонажа в игре) до источника звука — слушателем всегда будет выступать сам игрок.
Но нужна ли вообще прототипу музыка? Не думаю, что можно дать однозначный ответ (как и с анимацией). Давайте посмотрим на Hidden Folks. Это не просто 2D-игра, а настоящее произведение искусства.
Весь звук в Hidden Folks состоит из странных похрюкиваний и притопываний её разработчика, что само по себе USP — уникальное торговое предложение игры. Каждое прикосновение к экрану смартфона заставляет улыбнуться. Ладно, если запись похрюкиваний вам не подходит, в Asset Store Unity можно найти огромное количество платных и бесплатных ассетов для прототипа, а иногда и для релизной версии игры.
Рекомендации по выбору жанра можно прочитать в статье прошлого цикла. Здесь же мы будем говорить о некоторых путях, по которым можно пойти начинающему разработчику. Кому-то кажется, что вариантов не так много и обязательно надо закончить профильный университет с хорошей профессурой. Но если копнуть глубже, то обнаруживается бесконечный океан знаний, которые лежат прямо перед носом — остается только ухватиться за предоставленную интернетом возможность. Из доступного на ум сразу приходят:
Туториалы (tutorial) отличаются от курсов тем, что дают чёткий алгоритм действий для воспроизведения результата. Они не выходят за рамки поставленной задачи и отлично подходят, когда нужно сделать что-то конкретное, пока не пропал энтузиазм.
При первом поиске браузер выдаст миллионы ссылок с видеоуроками, статьями и готовыми проектами. Я подобрал несколько хороших вариантов по разным игровым жанрам. К тому же, среди других работ авторов можно найти ещё больше годного контента.
Есть YouTube-канал Brackeys. На нём — отличное вводное видео о том, с чего начать разработку платформера с плиточной графикой (tile based). Если сложно воспринимать на слух, можно включить английские субтитры.
Автор ролика приводит много примеров существующих проектов и объясняет, чем отличаются два различных подхода к созданию двумерных игр: sprite и tile based. В плейлистах канала можно найти староватый, но не потерявший актуальность туториал по созданию полноценного 2D-платформера с нуля — пошагово и со всем кодом, который можно повторить у себя и получить такой же результат.
На канале интересно практически каждое видео: даже если вы не планируете прямо сейчас врываться в разработку, стоит посмотреть хотя бы ролики о том, что нового появляется в Unity от версии к версии. Кстати, некоторые выпуски спонсирует сама Unity Technologies.
Если учиться по видеороликам не очень нравится, есть хороший туториал в виде полноценной книги на английском языке. Она проведёт вас от установки Unity пятой версии до конца разработки двумерного скролл-шутера.
Наконец, есть официальные туториалы от Unity. Видео сопровождаются текстовыми описаниями и даже листингами программного кода. В процессе обучения создаётся roguelike RPG в tile based мире.
Чтобы в точности повторить результат, Unity сразу предлагает бесплатно скачать все ассеты этого проекта. Очень удобно и не надо ломать голову над тем, где взять симпатичные спрайты, а не разноцветные прямоугольники. В последнем ролике вы даже научитесь реализовывать управление персонажем под сенсорные экраны мобильных устройств.
Принимаясь за изучение нового туториала, не стоит волноваться о том, какую версию движка использует автор.
Unity везде ведёт себя похожим образом, а функции движка пятой версии доступны и в самой последней. Конечно, инструменты совершенствуются, но авторы обучающих материалов редко копают настолько глубоко, так что об этом можно не беспокоиться.
Если нужно подтянуть навыки программирования, то на арену выходит старый и проверенный игрок — Code School. Всё происходит прямо в интерфейсе сайта, который выглядит свежо и удобно. И не чувствуешь на затылке укоризненный взгляд Лобачевского со старого портрета над доской с графиком дежурств. Точно стоит обратить внимание хотя бы на бесплатные курсы, чтобы понять, насколько удобен такой формат обучения.
Есть официальные курсы от Unity, не надо далеко ходить. Кажется, что они и дальше готовы инвестировать в это направление (а после курсов можно еще получить сертификат).
У GeekBrains есть два отличных курса, разбитых по уровням сложности. Раз уж мы говорим о 2D-играх, нас интересует первый. Оба курса требуют определенной алгоритмической подготовки, программированию там не учат, только разработке на Unity.
Вы научитесь делать игры в 2D буквально с нуля: на первом уроке установите движок, а на восьмом уже запустите проект на Android. Вы даже можете заметить меня в списке преподавателей и случайно попасть на мой поток.
Наступает время самостоятельной работы. Пора писать код своей первой игры!
- Определите главную механику. Например, у Tower Defence это строительство башен и волны врагов.
- Найдите туториал по главной механике или по жанру в целом.
- Реализуйте главную механику на практике, используя примитивную графику.
О нюансах 3D-игр и туториалах для них поговорим отдельно — в следующей статье.
Недавно мы рассказали о том, как научиться разработке игр на Unity . Продолжим тему на практике и покажем, как новичку создать на этой платформе первую 2D-игру.
Если вы хотите получить более систематическое образование в области разработки игр, мы рекомендуем рассмотреть факультет разработки игр онлайн-университета GeekBrains.Двумерные игры сравнительно просты: для них не требуется сложных 3D-моделей, программный код по сравнению с 3D-проектами выглядит понятнее. Такие игры популярны как на десктопах, так и на мобильных устройствах. Unity также позволяет разрабатывать игры и для браузеров.
За последние годы вышло много популярных двумерных игр:
-
– продолжение серии игр в жанре beat ’em up, файтинг; – игра в жанре «ферма», менеджмент; – игра в жанре «ужасы», метроидвания ; – игра в жанре «квест», головоломка; – игра в жанре beat ’em up, файтинг.
Программная реализация 2D-игр проще не только из-за отсутствия третьего измерения: на самой сцене меньше объектов, вместо трехмерных моделей плоские спрайты, вместо скелетной анимации – покадровая. А еще 2D-игры проще портировать на другие платформы – легче найти новую аудиторию.
Давайте создадим простую игру в жанре пинг-понг 🏓 . Перед тем как приступить к созданию игры, продумайте, какой именно результат хотите получить. На первых этапах рекомендуется использовать схематические шаблоны, чтобы быстрее получить работающий результат. В этой инструкции мы так и поступим. Графических ресурсов использовать не будем: и ракетки, и отбиваемый мяч будем пока отображать простыми белыми спрайтами.
Предварительно рассмотрим основные понятия Unity, без понимания которых будет проблематично создать игру:
Предполагаем, что вы уже установили редактор и создали аккаунт на портале Unity.
В первую очередь создадим новый проект и откроем его настройки (Edit → Project Settings). Во вкладке Editor установим параметр Default Behaviour Mode в значение 2D
Настройка проекта Детальная настройка проекта
Следующим шагом сохраним текущую активную сцену, назвав ее, например, Scene1. Теперь создадим основные игровые объекты: ракетку, мяч и менеджер игры, в котором будет храниться основная логика игры.
1. Создаем пустой объект, переименовываем в GameManager.
Создаем пустой объект
3. Создаем квадратный спрайт, называем его Pad (Assets → Create → Sprites → Square). Аналогично создаем круглый спрайт Ball (Assets → Create → Sprites → Circle). Масштабируем спрайт Pad со следующими параметрами – x:0.5, y:2.5, z:1.
Создаем спрайты
4. Создаем префабы для Pad и Ball, после чего добавляем к ним компонент Box Collider 2D (включаем параметр Is Trigger) и компонент Rigidbody 2D (выставляем параметр Body Type в значение Kinematic).
Добавляем .компонент Box Collider 2D Настраиваем.компонент Box Collider 2D Добавляем компонент Rigidbody 2D Масштабируем спрайты
6. Заполняем скрипты следующим кодом.
GameManager.cs Ball.cs Pad.cs
6. Добавляем к префабу Ball и Pad теги с аналогичными именами. Выделив префабы, в инспекторе мы можем видеть выпадающий список тегов. Там же расположены и кнопки для добавления и редактирования тегов.
7. В настройках камеры выставляем параметр Projection в значение Orthographic, а параметр Clear Flag – в значение Solid Color.
Настройка камеры
8. Настраиваем кнопки, как показано на следующих скриншотах (Edit → Project Settings → Input Manager).
Настройка ввода, основное Настройка ввода, первый игрок Настройка ввода, второй игрок
Вот и всё, игра готова!
Пинг-понг, итоговый результат
Билд для платформы Windows
1. Официальный туториал от Unity, где детально рассмотрен процесс создания roguelike RPG.
2. Youtube-канал Brackeys , где можно найти серию видеоуроков по созданию 2D-платформера.
3. Youtube-канал N3K EN содержит множество уроков как по отдельным компонентам Unity, так и полноценные серии уроков по созданию игр с нуля.
Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов».Если у вас мало опыта в разработке игр на Unity, мы рекомендуем обратить внимание на факультет разработки игр GeekBrains . Материал хорошо структурирован и содержит все необходимое для того, чтобы стать профессиональным Unity-разработчиком.
В числе прочего вы разработаете 2D-платформер с физическими загадками и динамическим освещением, научитесь портировать его на мобильные устройства. Кроме того, разработаете полноценную браузерную стратегию, а также игру в жанре двухмерных гонок.
По окончании обучения вы будете иметь портфолио из 4 игр, которое можно показать на собеседовании. Если же какая-то часть материала будет непонятна, вы всегда можете обратиться к персональному преподавателю.
Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 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. Определение класса теперь будет таким:
Добавим в класс нужные нам статические переменные (переменные класса):
В процедуру protected void onCreate(Bundle savedInstanceState) добавляем строки:
Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.
Теперь добавляем процедуру:
Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:
Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.
Для начала сделаем чтобы на экране отображался космический корабль, и чтобы он двигался по нажатию управляющих кнопок. Астероиды оставим на потом.
Шаг 6. Создаём класс GameView
Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480x800, или большой планшет 1800x2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.
unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:
Конструктор будет таким:
Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:
Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.
Шаг 7. Создаём класс SpaceBody
Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:
Шаг 8. Создаём класс Ship
Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.
и переопределим метод update()
На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды. При столкновении с кораблём игра заканчивается.
Шаг 9. Создаём класс Asteroid
Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.
Добавим нужные нам переменные:
Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.
Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.
Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.
Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.
((x+size) < shipX) — корабль слева от астероида.
(x > (shipX+shipSize)) — корабль справа от астероида.
((y+size) < shipY) — корабль сверху астероида.
(y > (shipY+shipSize)) — корабль снизу астероида.
Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.
Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.
Про определение пересечения более сложных фигур можно почитать тут.
Шаг 10. Добавляем астероиды в GameView
В GameView добавляем переменные:
также добавляем 2 метода:
И в методе run() добавляем вызовы этих методов перед вызовоом control().
Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().
Такой же цикл добавляем и в метод draw().
Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
Игра, конечно, примитивна. Но её можно усовершенствовать, добавив новые функции. В первую очередь следует реализовать удаление вылетевших за пределы экрана астероидов. Можно сделать чтобы корабль мог стрелять в астероиды, чтобы игра постепенно ускорялась, добавить таймер, таблицу рекордов и прочее. Если это будет вам интересно — напишу продолжение, где всё это опишу.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Читайте также:
- Как посмотреть реквизиты карты ситибанка в приложении
- Приложение к учебнику безударную гласную корня можно проверить словом приложит
- Как тратить магнитики в приложении магнит
- Как называется список рекомендаций от apple в котором содержатся советы по созданию приложений
- Управление яндекс станцией макс с телефона