Construct 2 игра на андроид

Экспорт в APK (Android) при помощи CocoonJS

Не так давно я задался вопросом экспорта на мобильные платформы, в частности на Android. Сначала я попробовал " Intel XDK " (бывший AppMobi). это было жутко. Не вдаваясь в подробности, объясню почему я не возлюбил этот сервис:

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

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

- И самое главное - все игры у меня тормозят при любом варианте и даже на расхваленном directCanvas. Причины этому до сих пор для меня мрачная тайна.

Быть может для использования этого сервиса нужно быть продвинутым программистом, знать все его API и тому подобное? Не знаю, но с "Construct 2" он работает просто ужасно!

PhoneGap не пробовал, т.к. слышал, что эта штука не для игр! И вот добрался до CocoonJS. буквально за 5 минут во всем разобрался и сделал свой первый билд, который к моему охренительному удивлению, работал охренительно быстро! Игры работают в 2-3 раза быстрее, чем в браузерах! К тому же отлично работает WebStorage -объект и работает вообще прозрачно, что очень немаловажно для игр с сохранениями.

Но и здесь есть свои нюансы:

- При бесплатном использовании сервиса в играх вставляется его логотип (большая картинка, показывающаяся 3 секунды перед запуском игры)

- Всё таки игры идут не на всех устройствах и не на всех устройствах они идут быстро. Но это нормальное явление, просто нужно тестить и составлять список поддерживаемых устройств.

- Чтобы отлаживать игру - приходится постоянно загружать её на сервис и ждать хрен знает сколько, пока тебе на мыло придет ссылка на скачивание билда!

ВНИМАНИЕ! Теперь уже есть очень удобный инструмент для тестирования игр: https://play.google.com/store/apps/deta. jslauncher - качайте это на свой андроид и далее будет достаточно подтвердить свой аккаунт и просто запускать экспортированный ZIP-файл с игрой.

Но всё равно, вам очень пригодятся знания по компиляции и декомпиляции apk, так что читаем дальше и вникаем;)

Последнее меня бесило больше всего! Я хотел бы иметь возможность компилировать свои проекты в пару кликов так же, как это можно сделать при экспорте в обычный HTML5 и при экспорте в Node-Webkit. Я потратил выходные на разгугливание темы и наконец добился этой возможности! Однако, прежде чем всё будет просто, нужно подготовиться. и для новичков это будет не так уж и "однокликово" на первый раз. Просто читайте внимательно и делайте, что говорит добрый дядя

Для начала я расскажу как в принципе экспортировать в CocoonJS без продвинутых манипуляций.

Делаем экспорт своей игры в CocoonJS:

Естественно, в CocoonJS нужно быть зарегистрированным! Регистрация в принципе простая. Предположим, что вы это уже сделали и входе в систему должны увидеть список своих проектов (если они есть):

Если их нет - то жмем зеленую кнопку New Project, что отправит вас на страницу настройки проекта:

Здесь всё предельно просто, как видно из моего примера. Даже английский знать не обязательно.

Application Name - это то, как будет называться ваша игра на телефоне.

Bundle Id - уникальный идентификатор вашего билда. А вот здесь интересно! Сначала я подумал, что этот идентификатор можно менять как версию, но нет - если вы его поменяете, то это уже будет считаться совершенно другой программой и устанавливаться она будет параллельно, а не заменяя (обновляя) вашу уже установленную версию игры! К тому же на Play Markete вы не сможете сделать обновление, если поменяете этот идентификатор. Обычно этот ИД создается по следующей схеме: com.mycompany.mygame. Т.е. что это? Компонент, значит com. Далее идет название вашей компании или просто ваше имя, а далее название игры. У меня это тупо siriusx666.bearputana00210 - просто так, чтобы уж точно ни с чем не повторилось.

Application Version - ну, здесь и ежу понятно, что это такое. В отличии от ИДа, версию можно менять каждый раз или не менять вовсе, всем пофиг.

Orientation - на какую ориентацию экрана рассчитана ваша игра? Думаю здесь тоже обойдемся без комментов.

А далее идет настройка "растягивания" игры на весь экран - Application Scale Method. Благо здесь тоже есть наглядные примеры и объяснения они не требуют, просто нажмите кнопочку Example и всё станет ясно. Если у вас возникают проблемы со скрытием объектов ЗА пределами экрана из-за несоответствия пропорций - вот пример того, как я решил эту проблему у себя .

Всё настроили? Жмем внизу кнопочку Save Project .

Теперь идем в раздел Android :

Здесь вам просто нужно загрузить иконки для вашей игры. Всё просто, формат должен быть PNG и требуемые размеры тоже написаны, например PNG 48x48px. Создать эти иконки можно даже в паинте, а можно тупо загрузить черные квадраты (если вы просто хотите протестить игру, а не выкладывать в сети)

Переходим в раздел Services -> Splashes (Ранее раздел назывался " Common Assets "):

Ставим галку на "Show Custom Splashes"

И жмем кнопку Update.

Construct 2 игра на андроид construct

Здесь загружаем картинки, которые будут показаны перед запуском игры. Размеры не важны.

Ну, а теперь идем в Compile Project :

Здесь жмем кнопочку "Выбрать файл" и выбираем получившийся ZIP-архив нашей игры при экспорте ( !ВНИМАНИЕ! В вашем проекте все объекты, переменные и слои необходимо именовать английскими символами! Иначе могут возникнуть проблемы с компиляцией! ). Ставим все галочки и жмем кнопку Compile project. Всё! Ждем, когда ссылка на скачивание придет к вам на мыло. А на мыло придет архив с двумя APK:

1) Debug signed - подписанный для тестирования на мобильном устройстве, но без возможности загрузки в стор.

2) Release unsigned - для загрузки в Store, но не подписанный ( Подробнее об этом здесь. viewtopic.php?f=4&t=625 ).

Скачали? Ок. Пока будем работать с файлом, который "Debug signed", переименуем его во что-то своё, например в Bear.apk. Попробуйте его установить на ваш телефон и проверить работоспособность. Допустим всё работает, но вы желаете что-то изменить в коде игры. По идее опять нужно загружать на сервис, ждать компиляции, качать в 2 раза больше чем надо. бееее, отстой. Но, я вас уже к этому подготовил и теперь даже не понадобится наличие интернета!

Изменение кода игры и компиляция без необходимости загрузки на CocoonJS!

И так, первое, что для этого нужно сделать - это скачать Java и Apk Manager .

Java качаем здесь: http://www.oracle.com/technetwork/java/. 80260.html (Возможно, что для скачивания потребуется регистрация).

В принципе подойдет и более старая версия (а точнее она подойдет абсолютно точно, просто новое - всегда приятнее=) ): http://www.oracle.com/technetwork/java/. 36632.html

Пройдя по ссылке найдите вот такой список:

Возможно перед тем как вы попадете на страницу с этим списком нужно будет нажать кнопку Download:

Но у меня это потребовалось только для шестой версии.

Далее ставим переключатель на Accept License Agreement и качаем версию для своей операционной системы (Я качал для Windows x64).

После скачивания ничего замутного делать не придется - просто запустите файл и тупо тыкайте Далее-Далее-Далее (Next-Next-Next), отвечая положительно на все запросы. Никаких дополнительных манипуляций настроек java не требует! И это хорошо!©

Поставили? Ок. Приступаем к скачиванию Apk Manager. http://4pda.ru/forum/index.php?showtopi. ry16363962 файл APKmanager_5.1.zip. (здесь для скачивания абсолютно точно потребуется регистрация). Кстати, для продвинутых, на этой страничке вы сразу сможете понять, что делать с этим Апк Манагером, а для не очень продвинутых советую читать меня дальше=)

Скачали? Распаковываем папку находящуюся в архиве в любое место на компе, но путь к этой папке не должен содержать русских символов! Короче, не парьтесь, просто распакуйте её в корень какого-нибудь диска. я просто распаковал её в диск C: и путь к папке выглядит так: C:ApkManager (переименовал, убрав в имени 5.1, но вам этого делать не обязательно).

Далее в папке ApkManager должны быть такие папки:

Всё верно? Ну, тогда вы готовы к великим подвигам!

Находим там папку "place-apk-here-for-modding" - в нее качаем APK-файл вашей игры (которая ранее была создана в CocoonJS).

Запускаем файл Script.bat и видим такое окошечко:

ВНИМАНИЕ! Если у вас вместо русского текста "крякозябры" - сделайте следующее:

Кликаем на черненькую иконку левом верхнем углу и выбираем "Умолчания"

Далее жмем ОК, закрываем консоль и снова запускаем Script.bat.

У меня мой файл Bear.apk нашелся сразу, о чем свидетельствует его имя в правом верхнем углу. Ежели такового нет, то пишем "22", жмем Enter, затем пишем номер под которым имя вашего файла.

У меня это 1.

Затем делаем Декомпиляцию файла (9).

Если все прошло нормально - то в папке APKmanagerprojects должна появиться папка с именем идентичным вашему файлу игры. у меня это всё тот же Bear.apk.

Заходим по пути APKmanagerprojectsBear.apkassetsgame - в этой папке лежат файлы вашей игры. Это те самые файлы, которые С2 экспортирует для CocoonJS в ZIP-файле. Т.е. если вы что-то изменили в вашей игре, экспортировали это для CocoonJS - то теперь просто удаялем все файлы в папке APKmanagerprojectsBear.apkassetsgame и копируем туда всё, что находится в архиве с экспортируемой игрой!

Всё сделали? Теперь возвращаемся к нашему черненькому окошечку с голубым текстом :) и водим команду номер 14 (Компилировать / Подписать / Установить).

Приложение компилируется, подписывается. а вот с установкой возникнут ошибки (об этом, возможно, напишу позже. а пока просто не обращайте внимание).

Идем в папку APKmanagerplace-apk-here-for-modding - видим свой Bear.apk и рядом лежит signedBear.apk - вот она! ВОТ ОНА СБОРКА ВАШЕЙ МЕЧТЫ. Копируем её на телефон и устанавливаем, тестим!)))

У многих возникают ошибки, типа "adb не является внешней или внутренней командой" или

"Не удается найти C:APKManagerplace-apk-here-for-modding../place-apk-here-for-modding/signedGive.apk

Не удается найти C:APKManagerplace-apk-here-for-modding../place-apk-here-for-modding/unsignedGive.apk"

Первое, что вы должны помнить - это то, что я не спроста советую всем копировать "APKManager" в корень системного диска и удалять в имени папки все лишние символы. Путь к данной папке не должен содержать пробелов, странных символов "#", точек, запятых и русских символов, так же путь до папки должен иметь минимальную длину! Всё это с технической точки зрения не обязательно, но, черт возьми, хватит умничать и делайте так, как я говорю во избежании проблем и глупых вопросов. Когда вы будете задавать мне вопросы - я буду автоматически считать в первую очередь то, что вы выполнили на все 100% вышеописанные условия и буду думать о другом решении вашей проблемы.

Теперь, что касается второй популярной ошибки "Не удается найти. " - она у меня возникала частенько, но при этом всё работало, а раз всё работало - то я и не заморачивался на счет её устранения. Но, пользователь Pasifia после решения первой проблемы, решил пойти дальше и таки нашел решение второй, за что ему большое спасибо. Вот, что он пишет:

"Кстати проблема решена, почистил ccleaner-ом временные файлы и установил другой апк менеджер.

Параллельно нашёл инфу как избавиться от ошибки "Не найден путь. "

Может кому будет полезно.

Reported by project member Brut.alll, Dec 5, 2011

If you use --rename-manifest-package option to aapt when building resources something weird happens. Resources are built for old package name, but manifest uses new one. This makes resources broken a little when using current apktool, because they're built for new package name, so resulting apk is a little different than original one.

In most cases it doesn't matter because resource package name isn't that important. However in some cases it is, e.g.:

- I think framework apks with changed resource package shouldn't work anymore

- if apk declares its own attrs and uses them in XMLs, they're referenced by package name, so references are broken after decoding - you won't be able to build apk back.

Problem can be reproduced very easily: just create new Android project, define some attr, use it in XML and then build resources with --rename-manifest-package. You will be able to apktool-decode resulting apk, but you will get "error: No resource identifier found for attribute" errors when building back.

Proper solution to this problem is to revert manifest package back to original one. So:

- check if resources package is different than the one in AndroidManifest.xml

- if so then rename android:package to that found in resources.arsc and store original android:package in apktool.yml

- when building use --rename-manifest-package if it is found in apktool.yml

Also in the case of apk-with-attrs files it should be possible to fix the problem quite easily without apktool support: just replace "http://schemas.android.com/apk/res/$" with "http://schemas.android.com/apk/res/$" in all XML files. You can do this in unix by e.g.:

find res -type f | xargs perl -pi -e 's/http://schemas.android.com/apk/res/com.touchtype/http://schemas.android.com/apk/res/com.touchtype.swiftkey/g'

Construct 2 игра на андроид construct

Вывод некоего Лерика:

"В итоге, как я понял, проблема в том, что в файлах с разметкой написан пакет "http://schemas.android.com/apk/res/com.touchtype", а в манифесте package="com.touchtype.swiftkey.phone.beta".

Для пробы изменил манифест на "com.touchtype" - все собралось.

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

З.Ы. Для тех, кто будет встречать эту ошибку в дальнейшем и найдет сей пост: для автоматической замены во всех файлах этой строки можно использовать Notepad++ (Ctrl+F -> Найти в файлах, дальше указываем папку и понеслась. )"

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

Спасибо за внимание! Подписывайтесь, ставьте лайк плюс. Пока!

Скрытие логотипа CocoonJS.

Вооружившись НЕХ-редактором, сделал хак (libCocoonJSLib.zip во вложении), который убирает логотипы CocoonJS! Вместо логотипа будет показан черный экран, но при желании его можно заменить на любую PNG-картинку! (Статья о том, как я это сделал. ) Скачиваем архив и распаковываем файл в папку APKmanagerprojectsear.apklibarmeabi, заменяя оригинал!

Только для личного использования и общеобразовательных интересов!

*использовалась версия CocoonJS от 10.03.2013

Далее обещал заняться вопросом удобной возможности экспорта для Free-пользователей. но я передумал это делать, т.к. считаю это несправедливым к тем, кто всё таки купил лицензию, а так же это будет несправедливым по отношению к Scirra. Чем больше у них купят С2 - тем скорее и круче они допилят его новые версии.

Так что данная статья скорее для владельцев лицензии выше Free.

Вот моя игра (без взлома) под андроид: https://dl.dropbox.com/s/84tq25vpi48fo1g/bear.apk - тот самый медведь))) Устанавливайте, тестируйте. Надеюсь это сподвигнет купить лицензию и экспериментировать самим.

У кого вылетают игры или не загружаются дальше логотипа CocoonJS - попробуйте проверить маску коллизии: viewtopic.php?f=4&t=444&p=20084#p20084

При каких-либо изменениях и дополнениях - буду редактировать данный пост!

Группа: Друзья 4PDA

Сообщений: 976

Регистрация: 07.02.2012

Репутация: 175

Уроки по Construct 2.

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

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

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

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

Новый Intel XDK для компиляции Construct 2 игр под Android

Chrome для Android является лучшим доступным мобильным браузером: ему присущи высокая производительность и поддержка новейших игровых технологий, таких как WebGL и Web Audio API. Теперь, благодаря Intel. вы можете использовать всю мощь Chrome для публикации игр, созданных на Construct 2. как нативные игры для Android .

Последняя версия Intel XDK компилирует ваши приложения с использованием Crosswalk. который является основаным на Chromium движке для Android. Это некое подобие Node-webkit для Android. но только с браузерным движком. Последняя бета Construct 2 r155 теперь может экспортировать ваши проекты для Android с помощью Crosswalk. Это огромный шаг для не браузерных движков, наподобие CocoonJs и Intel AGI. Вот некоторые преимущества Chrome для Android.

1. Поддержка эффектов WebGL ;

2. Менеджмент памяти. Большие игры идут плавно и не крашатся;

3. Поддержка режима Letterbox Fullscreen ;

4. Поддержка Web Audio API и продвинутых аудио-эффектов;

5. Быстрый запуск приложения;

6. Последний JIT -совместимый V8 JavaScript движок для подобно нативной производительности физики с asm.js ;

7. Полная DOM поддержка;

8. Поддержка XML -парсинга;

9. Поддержка web -шрифтов.

И самое главное, Intel предоставляет этот сервис по компиляции абсолютно бесплатно.

Теги: 

Рекомендуем также прочитать

Tom Loves Angela — Том любит Анджелу
Бесплатные java игры на телефон - скачай игры для телефонов бесплатно! Скачали: 425 263
Seven Nights at Buddy's Иконка игры
Андроид тормозит или зависает? Решаем проблему