SFML и C++ Уроки \ Разработка игр › Форумы › SFML Начало работы (подключение и настройка) › Подключение SFML 2.3.2 к Qt для разработки приложений под Android (Windows 7)
В этой теме 10 ответов, 4 участника, последнее обновление Heisenberg 7 года/лет назад.
-
АвторСообщения
-
Всё время пользовался Visual Studio 2012 и SFML версии 2.0.
Скачав Qt после “старых привычек” захотелось написать игру под мобильную платформу Android, а именно с использованием SFML.
Судя по документации на SFML-Dev это вполне возможно.Если кто проделывал подобное, или решит сделать и у вас получится, прошу поделиться опытом в подключении нашей любимой библиотеки к Qt под Android.
C++12345678if (sf::Touch::isDown(0)){// touch 0 is down}// get global position of touch 1sf::Vector2i globalPos = sf::Touch::getPosition(1);// get position of touch 1 relative to a windowsf::Vector2i relativePos = sf::Touch::getPosition(1, window);Heisenberg, извините за оффтоп, меня побудило любопытство написать
А почему именно C++? Сам Google рекомендует прибегать к Android NDK только в редких случаях, для всего остального, как говорится, есть Java. Хорошо бы прошла сцепка Android SDK + JSFML (впрочем, эта библиотека уже не поддерживается разработчиком, но все же).
Я спрашиваю, потому что у меня тоже была мечта писать под Андроид на плюсах, но меня отговорили когда-то, сказали, что игра не стоит свеч
Скачивал Android Studio с инструментами JDK, всё бы ничего, но мой ноут не потянул эту среду разработки. С просто запущенной IDE от силы оставалось 200MB свободной оперативки. Так ещё для тестов приложения требуется эмулятор, который тоже требует не мало памяти, плюс само приложение… В связи с этим просто удалил её.
jsfml всё равно компилится с cmake в итоге
MatrixDeity, ты не совсем прав. Google рекомендует использовать ndk для приложений, интенсивно использующих CPU, таких как: игровые движки, работа с сигналами и симуляция физики.
Вот кстати wiki-страница c GitHub SFML по теме. Если я когда нибудь докачаю SDK, NDK и ANT, то попробую собрать пример.
Тема всё ещё актуальна ЖМЯК
Heisenberg, если что я собрал пример, который дается для android и на этом мой запал как то по угас. Уж больно заморочено в андроиде все их файлы манифеста, активити и прочей лабуды.
Можешь показать что к чему, как подключать чтоб заработало? Пожалуйста!
Скачиваешь:
- CMake
- Git
- Android SDK
- Android NDK
- Apache Ant
Делаешь так чтобы из командной строки/терминала до этого всего можно было достучаться. В случае с windows прописываешь в переменную окружения PATH пути до следующих директорий:
- [Path to CMake]/bin
- [Path to Git]/bin
- [Path to SDK]/tools
- [Path to SDK]/platform-tools
- [Path to NDK]
- [Path to ANT]/bin
В случае с linux тоже можно прописать, но в большинстве случаев не имеет значение поскольку все ставиться в /usr/bin и так доступно в консоли (думаю линуксойдам вообще не стоит объяснять ибо они и так все понимают, без моих корявых объяснений)
Дальше открываем терминал переходим в папочку где не жалко гадить и делаем
Shell1git clone <a href="https://github.com/SFML/SFML.git" rel="nofollow">https://github.com/SFML/SFML.git</a> SFMLДля тех кто не знаком с git, данной командой мы клонировали репозиторий с SFML себе на компьютер в папочку SFML.
Дальше нам нужно собрать библиотеку SFML для компиляторов android. Для удобства в директории (папочке ^_^) SFML создадим поддиректорию builds. В linux это происходило бы вот так:
Shell12mkdir -p SFML/builds/armeabicd SFML/builds/armeabiКак это делается в windows, я уже если честно не помню, но кажется точно также.
Собственно, если внимательно присмотреться то я создал не только директорию builds, но еще и armeabi. Сделано это потому что в данный момент существует несколько основных платформ на которых работает android: arm, mips, x86 и т.д. Под этот зверинец существует несколько компиляторов android, свой для каждой платформы. Соответственно и библиотеку нужно собирать для всех этих платформ. Но в качестве тестовой сборки сделаем только для одной самой распространенной.
Дальше нужно сгенерировать make файлы для этого воспользуемся утилитой cmake со следующими параметрами:
Shell1cmake -DANDROID_ABI=armeabi -DCMAKE_TOOLCHAIN_FILE=../../cmake/toolchains/android.toolchain.cmake ../..Если генерация прошла успешно… Кого я обманываю, конечно она скорее всего закончилась не удачно. Ну что же здесь я могу только посоветовать внимательно читать вывод cmake и ставить необходимые зависимости. Если что то не получается, то ответ скорее всего найдется в гугле.
Если генерация наконец то прошла успешно – поздравляю можете приступать к сборке.
Shell1makeДля ускорения сборки можно воспользоваться многоядерностью: добавьте параметр -j и число ядер процессора + 1. У меня
Shell1make -j 5Если вы используете visual studia, то у вас нет утилиты make. Ее аналог в visul studia кажется nmake (никогда не был приверженцем visual studia)
После окончания сборки в директории lib будет собранная библиотека.
Ибо уже поздно, а мне завтра вставать на работу и вообще уже очень лениво, то продолжение следует… Если конечно, кто то вообще сможет разобраться в моих пояснениях и дойти до этого этапа =D
Редактор зачем то оборачивает ссылки в коде из за чего команда с git корявится правильно вот так:
git clone https://github.com/SFML/SFML.git SFMLСпасибо огромное, буду следовать вашей инструкции
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.