gpt4 book ai didi

Android OBB/ZIP 加载 (cocos2dx)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:16 27 4
gpt4 key购买 nike

我在处理 APK 扩展时遇到问题。在 Java 端,我可以设置我应该设置的所有内容,但似乎我无法在 C++ 端正确修改代码。

CCFileUtilsAndroid::getFileData 函数内部:

if (fullPath[0] != '/')
{
CCLOG("GETTING FILE RELATIVE DATA: %s", fullPath.c_str());
pData = CCFileUtils::sharedFileUtils()->getFileDataFromZip("/storage/sdcard0/Android/obb/com.example.package/main.1.com.example_package.obb", fullPath.c_str(), pSize);
}

但是 pData var 始终为空(如果我是对的,这意味着加载失败)。我想念什么伙计们?

提前致谢

(ps:包在,我用的是对的路径)

最佳答案

所以,我终于设法解决了我的问题,而且比我想象的要容易得多。我没有进行 c++ 源修改,而是在 Cocos2dxHelper java 类中找到了一个函数,即 nativeSetApkPath。查了一下使用方法,原来Cocos2dx是把apk包当成zip文件来处理的。由于我的obb毕竟只是一个重命名的zip文件,所以我可以毫无问题地使用它。除了声音,我所有的 Assets 都加载得很好。这需要另一个快速修复。

大部分归功于论坛帖子 (http://www.cocos2d-x.org/boards/6/topics/11243) 和 Irwin Billing,因为这是我可以用于修改 Cocos2dxMusic.java 和 Cocos2dxSound.java 类的基础。

另外,我必须确保声音 Assets 没有压缩在 zip 文件中(根据 Google 提供的文档)。

为此,我在我的 Mac 上使用了以下命令:

zip -rn .ogg:.mp3:.wav assets.zip assets/

我最后要提的是文件夹结构。我复制并压缩了 assets 文件夹,所以我的 zip 文件中有一个文件夹。这很好,因为 apk 的工作方式相同,我不必再做任何修改。

最后我修改了源文件,只是不要忘记浏览它,并更改一些值Cocos2dxHelper.java: http://pastebin.com/RqeYkTkP

Cocos2dxMusic.java: http://pastebin.com/RXjwmEyb

Cocos2dxSound.java: http://pastebin.com/1GfDB6jb

关于Android OBB/ZIP 加载 (cocos2dx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18573096/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com