繁体   English   中英

Android:如何使用ndk从c ++代码中读取游戏资产文件

[英]Android: How to make game asset files readable from c++ code using ndk

我正在使用irrlicht c ++ 3D图形引擎端口创建一个游戏到Android平台。 图形引擎是用c ++编写的。 我需要能够从c ++代码加载网格和纹理等。 我目前的计划是将所有游戏资产文件放在res / raw目录或assets目录中,然后在启动时将这些文件复制到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+compressed#1269bcd10bdb066d

如果我知道a)我可以提供更多具体的建议你需要访问多少资源b)你将遇到的最大资源的大小,更具体地说,你所有的资源都是<1MB大小未压缩?

理论上,您可以将InputStream传递给本机C ++代码并让它调用其方法。 您甚至可以在这些之上实现istream。 但是,我不认为这就是你所追求的。

请记住,APK中的资产文件不会存储为文件。 它们被压缩和存档 - 一个APK实际上是一个重命名的ZIP文件。 因此,我建议将资产从Java中复制到数据文件夹中,然后将该副本的文件名传递给C ++。

顺便说一下,这完全排除了对这些资产的写作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM