Android: как сделать файлы ресурсов игры читаемыми из кода c ++ с помощью ndk - PullRequest
20 голосов
/ 17 февраля 2010

Я создаю игру, используя порт графического движка irrlicht c ++ для платформы Android.Графический движок написан на с ++.Мне нужно иметь возможность загружать сетки и текстуры и т.д. из кода C ++.Мой текущий план состоит в том, чтобы поместить все файлы ресурсов игры в каталог res / raw или каталог assets, а затем при запуске скопировать эти файлы на карту SD, чтобы они были доступны из кода irrlicht c ++.Это лучший способ сделать игровые медиа-файлы доступными из c ++?

Ответы [ 2 ]

9 голосов
/ 17 февраля 2010

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

http://groups.google.com/group/android-ndk/browse_thread/thread/842ca9d7d82995b0

http://groups.google.com/group/android-ndk/browse_thread/thread/4e25a5dfd46f8fea/1269bcd10bdb066d?lnk=gst&q=apk+compressed#1269bcd10bdb066d

Я мог бы дать вам более конкретные предложения, если бы я знал a) Сколько ресурсов вам нужно было получить для доступа b) Размер самого большого ресурса, с которым вы столкнетесь, в частности, все ваши ресурсы <1 МБ несжатого размера? </p>

1 голос
/ 22 июня 2010

Теоретически вы можете передать InputStream собственному коду C ++ и вызвать его методы. Вы даже можете реализовать istream поверх них. Тем не менее, я не думаю, что это то, что вы ищете.

Имейте в виду, что файлы активов в APK не хранятся как файлы. Они сжаты и заархивированы - APK - это переименованный ZIP-файл. Поэтому я бы рекомендовал скопировать ресурс в папку данных из Java, а затем передать имя файла этой копии в C ++.

Это, кстати, полностью исключает возможность записи в эти активы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...