Cocos2d-x 不同平台上加载文件

cocos2dx在不同平台上读取资源文件时的处理方式是不同的。

在ios下,程序调用CCSprite::create("HelloWorld.png"),函数最终会到mainBundle下查找文件。

而在android下,函数会查找apk文件,然后从apk中读取资源文件。

差异的原因是ios下资源是放在程序Bundle目录下的,而android的apk文件是zip包,资源都

被压缩了,所以要从zip中抽取文件。

结合实际,如果项目中要自己读取某文件,比如数据库文件test.db,在ios下把其放在Resource下就行了;

而在android下要直接调用CCFileUtils::sharedFileUtils()->getFileData函数,函数返回值是文件内容指针,

操作完毕记得要将指针delete。

跨平台不是一件容易事啊~~

1. 资源读取

    ios的ipa的资源打包结构和实际结构是一致的,比如,在Resource目录下有一个client.cfg文本文件,我们是直接用fread或者ofstream读取出来的,处理的。 

    android的资源,打包的时候会全部拷贝到assets目下,压缩了一下,分两种情况:

    CCSprite::create()之类的,可以读取出来;

    自己的配置文件,xml之类的,不能直接读,必错。

    cocos2dx支持统一的方法: CCFileUtils::fullPathForFilename(), 获取正确路径; CCFileUtils::getFileData(),解压,将文件读出到内存,程序直接处理这个返回值。

2. android ndk, 也定义了__linux__宏,其他代码用到这个宏的小心,不要在ANDROID前面,把ANDROID的一些预定义给覆盖了。

3.  android涉及到的网络的, 在AndroidManifest.xml 加上:<uses-permission android:name="android.permission.INTERNET" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值