Android: كيفية جعل ملفات أصول اللعبة قابلة للقراءة من رمز C ++ باستخدام NDK

StackOverflow https://stackoverflow.com/questions/2278359

  •  21-09-2019
  •  | 
  •  

سؤال

أقوم بإنشاء لعبة باستخدام منفذ محرك الرسومات Irrlicht C ++ 3D إلى منصة Android. محرك الرسومات مكتوب في C ++. يجب أن أكون قادرًا على تحميل الشبكات والقوام وما إلى ذلك من رمز C ++. تتمثل خطتي الحالية في وضع جميع ملفات أصول اللعبة إما في دليل RES/RAW أو دليل الأصول ، ثم عند بدء التشغيل ، قم بنسخ هذه الملفات إلى SDCARD بحيث يمكن الوصول إليها من رمز IRRLICHT C ++. هل هذه هي أفضل طريقة لجعل ملفات وسائط اللعبة متاحة من C ++؟

هل كانت مفيدة؟

المحلول

هناك عدة طرق للقيام بذلك ... كل منهم لديه قيودهم الخاصة ، لذلك لا يمكنني تقديم توصية جيدة دون معرفة المزيد عن وضعك. فيما يلي بعض الروابط للمناقشات مع بعض النصائح التي قد تساعدك على الخروج:

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+compression#1269bcd10bdbdb066d

يمكنني أن أقدم لكم المزيد من الاقتراحات المحددة إذا كنت أعرف أ) عدد الموارد التي تحتاجها للوصول ب) حجم أكبر مورد ستواجهه ، وبشكل أكثر تحديداً ، هل كل مواردك <1 ميجابايت غير مضغوطة؟

نصائح أخرى

من الناحية النظرية ، يمكنك تمرير InputStream إلى رمز C ++ الأصلي وجعله يدعو أساليبه. يمكنك حتى تنفيذ isTream على رأس هؤلاء. ومع ذلك ، لا أعتقد أن هذا هو ما تتبعه.

ضع في اعتبارك أن ملفات الأصول في APK لا يتم تخزينها ، حسناً ، ملفات. إنها مضغوطة ومؤرشفة - APK هو في الواقع ملف zip أعيد تسميته. لذلك أوصي بنسخ الأصل إلى مجلد بيانات من داخل Java ، ثم تمرير اسم الملف لتلك النسخة إلى C ++.

هذا ، بالمناسبة ، يستبعد تمامًا الكتابة إلى تلك الأصول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top