我正在創建一個遊戲使用irrlicht c + + 3D圖形引擎端口到android平臺。圖形引擎是用C++編寫的。我需要能夠從C++代碼加載網格和紋理等。我目前的計劃是將所有遊戲資源文件放在res/raw目錄或資產目錄中,然後在啓動時將這些文件複製到SD卡中,以便它們可以從irrlicht C++代碼訪問。 這是使遊戲媒體文件可從C++訪問的最佳方式嗎?Android:如何使遊戲資產文件可讀取使用ndk
20
A
回答
9
有幾種方法可以做到這一點...他們每個人都有自己的限制,所以如果不瞭解更多關於您的情況,我不能給出好的建議。這裏有一些鏈接,與一些建議的討論,可以幫助您解決:
http://groups.google.com/group/android-ndk/browse_thread/thread/842ca9d7d82995b0
我可以給你更具體的建議,如果我知道一)有多少資源需要訪問B)您將遇到的最大資源的大小,更具體地說,是您的所有資源<未壓縮的大小爲1MB?
1
理論上,您可以將InputStream傳遞給本機C++代碼並讓它調用它的方法。你甚至可以在這些之上實現一個istream。不過,我認爲這不是你想要的。
請記住,APK中的資產文件不會作爲文件存儲。他們被壓縮並存檔 - APK實際上是一個重命名的ZIP文件。所以我建議將資源從Java內部複製到數據文件夾中,然後將該副本的文件名傳遞給C++。
順便說一句,這完全排除了寫入這些資產。
相關問題
- 1. 使用NDK和Android讀取資產2.1
- 2. Android C++:使用ndk從資產中讀取文本文件
- 3. 如何使用MuPDF從Android資產文件夾讀取文件?
- 4. Android遊戲資產vs可繪製hdpi?
- 5. Android NDK遊戲引擎
- 6. 使用FileChannel讀取Android資產文件安全嗎?
- 7. 如何從android資產文件夾讀取文件?
- 8. 從Android資產文件中讀取
- 9. 如何使用Irrlicht引擎設置Android NDK中資產文件夾的路徑?
- 10. 我可以在Android NDK中使用ifstream來訪問資產嗎?
- 11. Libgdx資產遊戲設計
- 12. OpenGL的Unity遊戲資產
- 13. 在Android中使用C++打開和讀取文本文件(ndk)
- 14. 使用Python讀取遊戲杆值
- 15. 讀取從JSON文件頭,並使用遊戲中的SCALA
- 16. 使用Android資產文件夾中的HTML和Javascript讀取Epub文件?
- 17. 如何讀取從資產文件夾中的Android
- 18. Android NDK:使用NDK上傳文件
- 19. LibGDX:如何優化Android遊戲中的資產處理?
- 20. Android遊戲如何使用傳感器?
- 21. 如何使用精靈在Android(遊戲)
- 22. 如何使用Google遊戲服務獲取連接到Android遊戲的玩家?
- 23. 如何使用子彈物理遊戲和ndk在Android設備上開發3D遊戲
- 24. 是否有可能從.smc文件中擷取遊戲資源?
- 25. 如何使用Python從遊戲端口讀取數據?
- 26. 使用cocos2d-android的遊戲
- 27. 使用ObjectInputStream從資產中讀取二進制文件
- 28. 在哪裏可以獲得可用於Android/iPhone遊戲的免版稅資產?
- 29. Android:如何使用純原生可執行文件的ndk-gdb?
- 30. 無法讀取資產文件夾中的.json文件android
那些是我以前沒有找到的好線索。這裏是另一個我發現有用http://thedevelopersinfo.com/2010/01/13/working-with-sdcards-filesystem-in-android/ 遊戲還沒有很好的定義,但這裏有一些appoximations 的文件,我會需要訪問C++ 約8個約400k大小的網格(3.2MB) 約8個大約50k大小的紋理(0.4MB) 約20個大小約爲20K的紋理(0.4MB) 1個質感193K(0.193MB) 總計大約4.2MB 另外一個視頻249K和一些聲音效果306K,但這些將在res/raw文件夾中並在Android媒體播放器中播放 – slytron 2010-02-18 01:46:27
好的,我問的原因是似乎有1MB的未壓縮文件大小限制每個資源,並且似乎也有一個最大資源數爲512.因爲它看起來像你是聯合國對於這兩者,您可以將所有資源放在「/ assets」文件夾中,然後使用AssetManager類訪問它們。如果您的APK是zipaligned,那麼AssetManager會爲您提供內存映射文件,這將大大提高速度。 – cjserio 2010-02-18 13:18:09
謝謝。我相信我有我需要做的。 – slytron 2010-02-18 13:29:15