kullanarak C++ kodundan okunabilir oyun varlık dosyaları nasıl yapılır Android platformu için irrlicht C++ 3D grafik motoru bağlantı noktasını kullanarak bir oyun oluşturuyorum. Grafik motoru C++ ile yazılmıştır. C++ kodundan kafes ve doku vb. Yükleyebilmem gerekir. Şu anki planım, tüm oyun varlık dosyalarını yeniden/raw dizinine veya varlıklar dizinine yerleştirmek, daha sonra bu dosyaları sdcard'a kopyalamak ve böylece irrlicht C++ kodundan erişilebilmektir. Oyun medya dosyalarını C++ 'dan erişilebilir hale getirmenin en iyi yolu bu mu?Android: ndk
cevap
Bunu yapmanın birkaç yolu vardır ... her birinin kendi sınırlamaları vardır, bu yüzden durumunuz hakkında daha fazla bilgi sahibi olmadan iyi bir öneri veremiyorum. İşte size yardımcı olabilecek bazı tavsiyeler ile tartışmalara bazı bağlantılar: i b erişmek için gerekli kaç kaynaklar) bir bilselerdi
http://groups.google.com/group/android-ndk/browse_thread/thread/842ca9d7d82995b0
Sana daha spesifik öneriler verebilir) Karşılaşacağınız en büyük kaynağın boyutu, daha spesifik olarak, sıkıştırılmamış boyutta < 1MB kaynağınız mı?
Teoride, InputStream öğesini yerel C++ koduna geçirebilir ve yöntemlerini çağırmasını sağlayabilirsiniz. Bunların üstüne bir istream bile uygulayabilirsiniz. Ancak, bunun peşinde olduğunuzu düşünmüyorum.
APK'daki varlık dosyalarının, dosyalar gibi saklanmadığını unutmayın. Sıkıştırılmış ve arşivlenmişler - bir APK aslında yeniden adlandırılmış bir ZIP dosyasıdır. Bu nedenle, varlığın Java içinden bir veri klasörüne kopyalanmasını ve bu kopyanın dosya adını C++ 'ya geçirmenizi tavsiye ederim.
Bu, bu arada, bu varlıklara yazmayı tamamen devre dışı bırakır.
- 1. Android NDK
- 2. Android NDK
- 3. Android NDK
- 4. Android NDK artımlı yapı
- 5. Android NDK geliştirmesi
- 6. Android NDK assert.h sorunları
- 7. Android ndk statik zlib
- 8. kullanarak Soket() Android NDK
- 9. Android NDK build, Yöntem çözülemedi
- 10. Android Ön Yükleme NDK Uygulaması
- 11. NDK Entegrasyon Android Studio Hata
- 12. Kaldırma ve kaldırma Android NDK
- 13. Android-NDK-Yerleşik Destek-NDK konumu tercihlerinde geçerli değil
- 14. Android NDK, Hata: (165, 0) Neden: ndk-build ikili bulunamıyor
- 15. NDK hatası
- 16. NDK
- 17. Android Yerel NDK OpenGL ES: kullanılmayan API
- 18. Android NDK r4 san-angeles sorunu
- 19. Android için protokol arabelleği oluşturma NDK
- 20. Android NDK Entegrasyonu: Hata: Yöntem bulunamıyor 'com.android.build.gradle.internal.Application
- 21. Android NDK - OpenGL ES Eğitimi/Kitaplıkları
- 22. Android için GoogleTest NDK C++ ile CMake
- 23. Android NDK: Java işlevlerini çağırma C++
- 24. Android NDK: Boost C++ kitaplığı dahil
- 25. Android cmake, daha yeni NDK sürümleriyle uyumludur?
- 26. Android NDK ile donanım kayan nokta alma
- 27. Android ndk-build göz ardı APP_ABI: = x86
- 28. Android NDK: Onaylama hatası: TARGET_PLATFORM tanımlı değil
- 29. cmake android ndk ile başarısız oluyor
- 30. Android NDK, iki Statik Kitaplık ve Bağlantı
Bunlar daha önce bulamadığım güzel konular. Burada başka bir yararlı olduğunu öğrendim http://thedevelopersinfo.com/2010/01/13/working-with-sdcards-filesystem-in-android/ Oyun henüz iyi tanımlanmamış ama burada yapacağım bazı dosyalar C++ yaklaşık 400k boyutunda yaklaşık 8 kafes (3.2MB) yaklaşık 50k boyutunda yaklaşık 8 doku (0.4MB) yaklaşık 20k boyutunda 20 doku (0.4MB) 1 doku 193K (0.193MB) Toplam yaklaşık 4.2MB Ayrıca bir video 249K ve bazı ses efektleri 306K ama bunlar res/raw klasöründe olacak ve android media player'da çalınıyor – slytron
Tamam, sormamın nedeni 1MB sıkıştırılmamış bir dosya boyutu olduğu görülüyor KAYNAK PERFORMANSI ve 512 maksimum kaynak sayısı da var gibi görünüyor. Bunların her ikisini de, tüm kaynaklarınızı "/ assets" klasörüne koyabilir ve daha sonra AssetManager sınıfını kullanarak bunlara erişebilirsiniz. APK, zipaligned ise, AssetManager sizin için dosyaları büyük bir hız artışı olacak şekilde hafızaya alacaktır. – cjserio
teşekkürler. Yapmam gerekeni yaptığına inanıyorum. – slytron