RU

QSP под Android

Nex Moderator 18.10.2010 08:34 256 comments 189348 views

Взялся недавно за портирование QSP на андроид.

Учитывая, что под андроид нельзя “напрямую” портировать написанный с использованием wxWidgets плеер, задача оказалась довольно сложной.

Разобравшись с доступными средствами, определился, как именно сделать порт, а именно:

  1. Библиотека QSP собирается в NDK.
  2. Для библиотеки делается “биндинг под ANDROID”.
  3. Для доступа к интерфейсу библиотеки через jni пишется специальный класс-прослойка.
  4. GUI пишется на Java.

Страница на Маркете: Quest Player

Edited at 15.06.2011 05:51 (14 years ago)

Итак, на сегодня выполнено:

  • Библиотека успешно собирается в NDK.
  • Биндинг под андроид частично написан.
  • Начата работа над jni-интерфейсом.

GUI уже умеет :

  • Загрузить заранее заданный файл с sdcard(флэшка).
  • Запустить игру.
  • Вывести описание локации в правильной кодировке.

Nex, по идее биндинг и должен содержать jni-интерфейс.
То есть, вместо апи (в android_control.c) вида “const QSP_CHAR *QSPGetVersion()” будут jni-функции.

Или так и делаешь сейчас?

Byte,
нет, сейчас у меня раздельно. Мне пока что так удобнее.
Может, объединю потом.

Надо будет объединить потом - т.к. это часть биндинга.

Byte,
я понимаю, что по-хорошему нужно так сделать, просто по-плохому быстрее получится.

Главное, чтоб работало. Наведение красот можно смело оставлять напоследок, я не перфекционист.

GUI научился:
Выводить список действий.

GUI научился “выполнять” действия.

Сделал возможность выбрать файл.
Пока что это неудобный способ, реализованный исключительно для тестирования - плеер ищет файлы “.gam” и “.qsp” в корневой директории флэшки (”/mnt/sdcard”)

Сделал вкладки для доп. описания и инвентаря. Это тоже временное решение, в будущем надо будет как-то удобнее это разрулить.

Желающие уже могут попробовать в действии:QspAndroidPlayer.zip

Многое еще не реализовано, баги могут быть самые разные.

Какие-то большие вкладки :)

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

Нереализованные “фичи”. По мере выполнения буду убирать из списка.

Движок:

  1. работа с файлами из игры(сохранение/загрузка состояний, загрузка доп. локаций)
  2. колбэки “настройки интерфейса” - SHOWACTS, SHOWINPUT, SHOWOBJS, SHOWSTAT
  3. картинки у действий и предметов
  4. BCOLOR, FCOLOR, LCOLOR, FSIZE, $FNAME, $BACKIMAGE
  5. поддержка HTML-таблиц
  6. строка ввода

Приложение:

  1. Привязка расширений
  2. Иконки для файлов
  3. Полка игр - просмотр каталога, скачивание, запуск, обновление
  4. Авто-обновление плеера

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

Плеер научился показывать текст по команде MSG.

Плеер научился кое-как отображать HTML.

Log in or Register to post comments.