Construct 2 уроки для андроид

Construct 2 уроки для андроид

Если у вас есть желание создавать интересные игры, но вы не знаете ЯП, то Construct 2 — это ваш выбор!

Программа проста и интуитивно понятна, так что разобраться в ней не составит труда. Прочитав пару основных уроков, вы легко сможете начать создавать свою первую игру. А самое интересное, что Construct 2 предоставляет возможность портирования вашей игры на iOS, Android, Facebook, Chrome Web Store, Desktop Windows, Windows 8 Apps, Web (HTML5), Kongregate… и многие другие игровые платформы. И всё это доступно без каких-либо навыков программирования!

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

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

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

Сообщение отредактировал derak1129 — 14.11.20, 23:02

Что такое Construct 2? Это конструктор, позволяющий любому пользователю(при наличии соображения и усидчивости) создать свою видеоигру для различных платформ, в числе которых и Android OS.
Программа не очень-то уж популярна, и толковых русских инструкций нет, так что эта будет чуть ли не первой. Сегодня, на первом уроке я уже расскажу как написать игру. Если быть внимательным, то создание своей игры будет несложным, и Вы получите от этого процесса удовольствие.

Итак, давайте начнем!

Сперва необходимо скачать Free Edition — для начала будет достаточно его, если Вы захотите расширить возможности программы, то купите уже «премиум» версию. После загрузки установите Construct 2. Теперь приступим к процессу создания игры.

Создадим новый проект. Нажмите кнопку File и выберите New.

Появится окно, в котором Вам всего лишь нужно выбрать «Create project». Ваш проект будет сохранен в файле с расширением .capx
На Вашем мониторе появится пока что пустое пространство — считайте, что это будущее меню или уровень.

Сперва мы создадим задний план — «территорию», в рамках которой будет идти игровой процесс. Сохраните файл, выложенный мной ниже:

Теперь кликните два раза по белому пространству — появиться окно. Через него можно добавить различные элементы на уровень. Выберите Tiled Background.

Появится новое окно, содержимое которого напоминает шахматное поле. В этом окне нажмите на папку в левом верхнем углу:

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

Теперь давайте поставим разрешение повыше и расположим задний план по центру. Для этого слева есть специальное «меню»:

Поставьте все параметры также, как они установлены на картинке. Если Вы сделали все правильно, то Ваш проект должен выглядеть вот так:

Итак, задний план\фон у игры готов! Нам нужно закрепит его и создать новый «слой», на котором будут уже Ваш персонаж и другие объекты.
Найдите окно «Projects», и кликните в нем Layers:

Теперь Вы увидите Layer 0. Это тот слой, с которым мы и работали. Давайте переименуем его в Background. Для этого кликните по надписи правой кнопкой мыши и выберите Rename. Да, и нажмите на замочек рядом с надписью — так Вы закрепите слой.
Теперь, в этом же окошке, нажмите на плюсик сверху, чтобы добавить новый слой. Назовите его Main. В итоге Вы должны увидеть чт-то типа этого:

Убедитесь, что Вы сейчас на слое Main. Теперь добавим в этот слой парочку объектов.

Сперва добавим средство управления — вновь кликните по пространству по середине и в открывшемся окне выберите Keyboard. Теперь можно играть используя клавиатуру.
Теперь Вам снова нужно скачать пару картинок — они под спойлером:




Все это — игровые объекты. Собственно чего мы теперь добиваемся — мы создадим игру, в которой игрок должен уничтожать монстров, стреляя из пистолета пулями(и таким образом взрывая их). Монстры, в свою очередь пытаются убить игрока. Начнем?

Сперва загрузим все четыре спрайта(картинки) в игру — кликните по пространству по середине, и у Вас откроется уже знакомое меню. В нем Вы выбираете Sprite. Теперь окно закроется, и Вам нужно будет кликнуть на то место, где вы хотите расположить спрайт. Кликните по тому месту, и пред Вашим взором предстанет «шахматная доска». Знакомым способом укажите путь к нужному спрайту. Проделайте эту манипуляцию еще три раза, таким образом загрузив все четыре спрайта. Давайте-ка их переименуем, чтобы потом не путаться. Начнем с солдата: кликните по нему левой кнопкой мыши один раз. Слева вверху в окне самой программы появится такая вот штука:

В поле Name введите Player. Затем проделайте это с пулей, монстром и взрывом, назвав их Bullet, Monster и Explosion соответственно.

Затем «перетащите» пулю и взрыв «за экран» — т.е. за пределы заднего плана. Они будут появляться лишь в тот момент когда они нужны, верно?

Итак, последнее в сегодняшнем уроке — это передвижение персонажа.

Кликните на спрайт игрока, после чего слева снова появиться его «статистика» Видите там раздел Behaviors? Это свойства того или иного объекта в игре.

Кликните Add\Edit. В появившемся окне нажмите плюсик, после чего откроется еще одно. В нем нам нужно выбрать:

Add8Direction — персонаж сможет передвигаться во все восемь направлений.
Scroll to — камера зафиксирована на этом объекте.
Bond to Layout — объект не может «выпасть» за пределы игрового мира.

В итоге у Вас должно наблюдаться такое окно:

Самое время проверить игру в действии. На самом верху окна с программой есть кнопка Play:

Нажмите на нее, и попробуйте поуправлять персонажем, используя «стрелки». Следит ли камера за игроком? Дойдя до конца «карты», Вы не проваливаетесь в никуда? Если все работает как надо, то Вы осилили первый урок, поздравляю!

Следующий урок будет выпущен в течении следующей недели.

Сообщение отредактировал [email protected] — 09.09.12, 17:52

В прошлый раз мы остановились на добавлении свойств объекту Player. Давайте добавим свойств и другим объектам.

Добавим объекту bullet свойство Bullet movement(объект теперь может перемещаться по прямой) и Destroy outside layout(уничтожает пулю в тот момент, когда она улетает «за экран» — нам ведь не нужны лишние объекты, тормозящие игру).
Объекту Monster мы также добавим Bullet Movement, в дальнейшем вы поймете, почему я сделал именно так.
Ну и на засыпку добавим свойство Fade объекту Explosion — через несколько секунд после появления взрыва на экране, он начнет исчезать. После полного исчезновения объект автоматически уничтожается, дабы не нагружать игру.

Попробуйте запустить игру. Вам не кажется, что монстр уж слишком быстро передвигается? Давайте его немного замедлим. Кликните левой кнопкой мыши на монстра. Слева найдите пункт Behaviors, в нем — пункт Bullet. Вот что вы должны увидеть:

Смените значение Speed с 400 на 80(эти цифры показывают, сколько пикселей преодолевает объект за одну секунду).
Теперь таким же образом смените Speed у пули на 600 и Fade out time у взрыва на 0.5.(цифра обозначает, через сколько секунд объект станет исчезать).

А теперь давайте добавим побольше монстров на игровое поле — зажмите кнопку Ctrl на клавиатуре, и левой кнопкой мыши «потащите монстра куда-нибудь). Как видите, монстр «раздвоился). Сделайте таким образом семь — восемь монстров.

Давайте же перейдем к теме урока — эвентам, или событиям.

Сперва кликните на вкладку Event Sheet 1, расположенную чуть выше поля с объектами. У вас должно появиться практически пустое окно по середине.

Сперва стоит пояснить, что такое система эвентов и как она устроена. Эвент — это «скрипт», который выполняется при определенных обстоятельствах. Обычно цепочка выглядит так — «Условие — Событие». Давайте я поясню это более наглядно — научим игрока стрелять.

Чего мы должны добиться — нажимая на клавишу Z, игрок стреляет, выпуская пулю.
Как мы этого добьемся — дважды кликните по пустому пространству в Event Sheet, тем самым вызвав меню условий(здесь мы задаем условие для выполнения эвента). Выбираем Keyboard — On key pressed(это значит, что условие таково — если на клавиатуре нажата какая-либо кнопка, то — . ) и как кнопку-триггер ставим Z. Теперь откроется окно действие\action — в нем описывается то, что случиться после выполнения условия. Действие выполняет Player, соответственно выбрать нужно именно его. Игрок будет «создавать» пулю — значит, выбираем Spawn Another Object, затем выбираем пулю. Как Layer ставьте 1(это слой, на котором появляется пуля). Вот что должно выйти:

Запустите игру, и попробуйте пострелять. Вам не кажется, что игрок стреляет не из пистолета, а из собственной груди? Давайте исправим это недоразумение.
Кликните на объекте Player правой кнопкой мыши и выберите Edit Animations.

Появиться «шахматное поле» со спрайтом игрока посередине. Выберите origin and image points.

Появится такое окно:

Красная точка — это ось, вокруг которой вращается игрок, когда поворачивается. Её трогать не нужно. Нажмите на зеленый плюсик, и появится новая, синяя точка. Теперь кликните по дулу пистолета игрока — и там появится синяя точка — она точка «спауна» пули:

Закройте «шахматное поле». Идем обратно в Event Sheet.Дважды кликните на Spawn the object левой кнопкой мыши, и поставьте Imаge point 1.

Запустите игру. Теперь пуля стреляет оттуда, откуда ей стрелять положено.
Теперь сделаем так, чтобы пуля убивала монстра.
Condition: Bullet -> On collision with another object -> pick Monster.
Action: Monster -> Destroy
Action: Bullet -> Destroy
Как видите, нам нужно добавить три действия к условию. Чтобы сделать это, нужно нажать Add Action.

На этом второй урок заканчивается. На третьем мы завершим создание этой игры.

Сообщение отредактировал [email protected] — 12.09.12, 12:14

Вот русскоязычные сайты:
http://scirraconstruct.ru — большой сайт, есть много исходников и туториалов
http://constructru.jimdo.com — небольшой сайт
http://c2community.ru — форум о конструкторе
Вот.

Кстати где-бы раздобыть спрайты танков(вид сверху)? И как запихнуть игру в апк?

Источник

Создание мобильной игры в Construct 2. Путь неопытного

Начало, Идея, основная концепция

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

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

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

При более детальном построении логики игры я старался не отходить от основного принципа: игра должна быть простой и быстрой в реализации — чтобы не тратить много времени на первый ком и набрать весь минимально необходимый опыт для последующих проектов. С учетом того, что по характеру игра напоминает runner, хотелось обойтись без головной боли в виде построения десятков разных уровней и сделать один бесконечный.

Создание игры

Для дальнейшей работы потребовалась расширенная лицензия Personal License. Иначе недоступен экспорт на мобильные платформы, а также запрещено использование в коммерческих целях.

Сделал набросок в один экран, продолжил прорабатывать физику главного Героя. В результате получилось следующее: при движении Героя вправо случайным образом генерируются разные по фасаду и размеру здания. При нажатии на здании создается условная веревка, соединяющая Героя и упомянутую точку касания. Остальное делает встроенный в Construct 2 физический движок. При нажатии на свободное от строений пространство условная веревка исчезает, Герой вылетает по касательной. Конец игры при падении на землю.

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

После реализации задуманной физики движения (т.е. осознания того, что задуманную игру действительно можно сделать посредством Construct 2) я приступил к внедрению некоторых деталей – необходимого минимума для любой мобильной игры:
— Нормальная графика (в качестве редактора использовал бесплатный Inkscape – очень приятный векторный редактор, работал с ним впервые и с удовольствием);
— Экран меню;
— Кнопки с рестартом уровня, паузой, выходом из приложения и всего такого;
— Экран с информацией об игре;
— Счет и локальное хранение лучшего результата на телефоне;
— Оптимизация «кода»;
— Доработка геймплея, создание препятствий (фонари, рвущие веревку и сбивающие героя голуби);
— Усложнение игры с каждым новым уровнем (голуби становятся быстрей и встречаются чаще, фонарей также становится больше, здания – реже);
— Сделал корректным отображение элементов HUD на устройствах с различным разрешением.

Одной из значительных трудностей была реализация одного бесконечного уровня на всю игру. Проблема заключалась в том, что layout сделать бесконечным нельзя. Игры типа infinite runners делаются по принципу движения космического корабля из небезызвестного сериала Futurama: не герой двигается относительно всего остального, а все окружающее пространство движется относительно героя, а герой стоит на месте. В таких играх физика как таковая отсутствует, поэтому в моем случае это было фактически нереализуемо. В итоге я пошел по пути наименьшего сопротивления – длина layout’а считается одним уровнем, при его достижении с героя снимаются все данные о его движении, спрайт с Героем удаляется, в начале layout создается новый с теми же характеристиками движения, и это считается следующим уровнем.

Вставил музыку, брал с источника freesound.org. На нем много всего бесплатно, но надо обращать на тип лицензии (всего их три). Для некоторых из них требуется спросить разрешения автора перед использованием, или обязательно указать ссылку на него в своем продукте. Я использовал звуки с лицензией, при которой не нужно делать ничего, только скачать и использовать. Впоследствии большую часть звуковых эффектов пришлось убрать – они сильно притормаживают игру, и эту проблему с наскока решить не получилось, пришлось отложить до лучших времен.

Большая часть всего перечисленного была сделана за полторы недели (напомню, я делал это не по вечерам, а по 10-12 часов каждый день с перерывами на чай/кофе/потанцуем). Остальное допиливалось на последующих этапах.

Ниже представлены иллюстрации эволюции игры:

Экспорт

Игру, созданную на Construct 2, можно портировать на Android, iOS, Windows Phone. Это помимо не интересующих меня в данный момент Facebook Games, Chrome Web Store и пр.

Выбор мобильной платформы для портирования, разумеется, был сделан в соответствии с используемым мной в быту телефоне, поэтому это оказался Android.

Для экспорта есть несколько альтернатив, мой выбор пал на Intel XDK. Удобный и понятный XDK, быстрое тестирование на телефоне без необходимости переустанавливать приложение после каждого изменения.

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

Очень много времени я потратил на изучение форумов, пытаясь решить проблему с производительностью, по максимуму оптимизировал и упростил «код», на эту тему написано немало статей – открыл для себя множество интересных мелочей. Например, что отображение постоянно изменяющегося текущего результата (score) посредством текста очень сильно грузит приложение, и вместо текста нужно обязательно использовать Fonts.

В результате оказалось, что Intel XDK ведет себя так только в случае использования физического движка Box2D web. Для решения этой проблемы они создали отдельный движок Box2D asm.js, однако мое приложение с этим движком упорно отказывалось запускаться. В результате в качестве инструмента экспорта я переключился на CocoonJS. Construct 2, насколько я понял, уже не особо с ними сотрудничает (в самом конструкторе в перечне инструментов экспорта CocoonJS скрыт как deprecated exporter). Однако в случае использования физики это единственный работающий (хорошо работающий) вариант. Да и со стороны CocoonJS плагины для Construct 2 все еще создаются и обновляются.

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

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

Монетизация

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

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

Единственный способ подключения рекламы к созданной в Construct 2 игре под Android и экспортируемой через CocoonJS – это связка рекламных сетей Mopub + Admob и остальные. Реклама MoPub подключается к приложению при экспорте в CocoonJS. Однако эта рекламная сеть, помимо своих объявлений (которых у нее мало, и оплата за них небольшая), может служить посредником между другими сетями, выставляя при этом для каждой сети минимальную стоимость за показ. Таким образом, можно в одном приложении показывать рекламу нескольких рекламных сетей, и для показа будет выбрана одна из наиболее дорогих. Admob, безусловно, является фаворитом среди рекламных сетей для Android, поэтому в качестве дополнительной я остановился на ней.

Сразу отмечу, что для тестирования рекламы публикация в App Store не нужна, можно встраивать и тестировать рекламу на любом удобном этапе разработки приложения.

Мой выбор формата показа рекламы пал на Full screen ads в момент нажатия кнопки Back или Restart, но не чаще чем раз в 2 минуты. Использование баннеров на экранах меню бессмысленно, ибо никто там надолго не задерживается; баннер на экране с уровнем в случае с динамичной аркадной игрой еще более бесполезен.

При подключении рекламы по данной схеме следует отметить несколько особенностей.
1. Интегрировав рекламу в приложение – не стоит волноваться первые минуты/часы при тестировании. Первое время реклама не будет показываться вовсе, потом будет показываться очень редко – нужно некоторое время, чтобы объявления начали подгружаться в полную силу.
2. Admob имеет один из самых высоких показателей Fill Rate, однако в случае с реализацией по данной схеме с использованием MoPub в качестве посредника FillRate сети Admob падает до 30-80%. Эта проблема существует, о ней известно, и разработчики обещали ее исправить. Однако когда это произойдет – неизвестно.

По данной причине я решил не ждать и выйти из сложившейся ситуации достаточно простым способом. Очевидно, никто не будет показывать рекламу в приложении каждые 10 секунд. Независимо от реализованного вами способа выбора момента показа рекламы (будь то нажатие определенной кнопки, или показ каждые n минут), между двумя показами проходить сколько-нибудь существенное время. Допустим, 2 минуты. В Construct 2 при подключении рекламы делаем следующую вещь: заводим переменную AdsLoadTrigger, обозначающую, была ли подгружена реклама, и, если нет – каждые 10-20 секунд пробуем загрузить снова, вплоть до удачной попытки. Таким образом, при фактическом Fill Rate в 20% можно без труда достичь близкой к 100% вероятности показа рекламы в нужный вам момент.

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

Публикация

Напомню, что портирование производил на устройство под Android: разумеется, самой популярной площадкой для распространения мобильных приложений является Google Play, однако существует немало альтернатив, про которые не стоит забывать. Таким образом, помимо очевидного выбора в пользу Google Play, я использовал также одни из наиболее популярных альтернативных магазинов: SlideMe и GetJar.

Учитывая, что для продвижения в наиболее перспективном Google Play очень важен мощный уверенный старт (для попадания в топы разделов) – альтернативные площадки можно использовать для обкатки приложения на пользователях, устранения основных замечаний и сбора данных для аналитики (конечно, если такая возможность была учтена в приложении).

Несколько слов о локализации: как минимум описание игры следует перевести на 4 языка – японский, английский, корейский и китайский. Таким образом, Вы охватите больше половины всех потенциальных пользователей Вашего продукта.

Еще один очень важный момент — это подпись вашего продукта. Не уверен насчет других площадок, но для Google Play наличие подписи обязательно. При выполнении этой операции рекомендую использовать Java Development Kit версии 1.6. Я, по незнанию, использовал следующую версию 1.7 — в результате при установке приложения из Google Play выдавалось сообщение о неверной подписи пакета, и фактически с первых минут публикации игры никто не мог ее установить. Что неприятно. Единственное найденное мной решение: залить новый apk, подписанный уже версией JDK 1.6, так что лучше сразу пользоваться этой версией.

Продвижение

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

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

В качестве примера приведу полезную, на мой взгляд, ссылку на перечень платных и бесплатных сайтов-ревьюверов приложений для Android, iOS и Windows Mobile.

К описанию игры во всех магазинах приложений была указана ссылка на необоснованно-патетический промо ролик игры с изображением основных моментов геймплея. При создании промо ролика использовался видеоредактор «Camtasia Studio 8». Его возможностей более чем достаточно для создания подобного материала, при этом в программе можно очень быстро и самостоятельно разобраться. Для меня приятной особенностью является то, что в ней возможна запись экрана компьютера (я делал запись геймплея, запуская созданную игру в браузере) с возможностью удаления курсора. К сожалению, программа не бесплатна, однако 30 суток на пробу этого продукта вы имеете.

Источник

Читайте также:  Как сделать свою анимацию загрузки android
Оцените статью