简介
做游戏难免和各种图片和声音,plist打交道,在创建精灵和加载帧图片时,资源路径没有写对程序会崩掉的。往往这个路径错了,找问题原因去非常难找。看看自己写的代码有没有问题,可是就是不知道什么原因。写路径就比较麻烦了,路径写错了更麻烦了。对此,小弟我做了一个shell 脚本 来生成一个叫ResourcePath.h的文件来 “点” 出你要资源的路径。适合支持shell 脚本的系统。
效果如下:
资源归类有以下11种:
1.image(图片资源):jpg、jpeg、pvr、pvr.ccz、pvr.gz、tga;
2.plist(配置文件,图片配置文件,用户自定义配置文件):plist;
3.audio(音效,背景音乐):ogg、wave、WAV、mp3、MP3;
4.font(字体):fnt、ttf;
5.tmx(地图):tmx;
6.xml(XML): xml;
7.json(JSON):json;
8.spine (SPINE骨骼动画文件):spine;
9.txt(TXT文本);txt;
10.shader(着色器):fsh、vsh;
11.ccb(CocosBuilder生成文件): ccbi;
用法非常简单
对了解Android的同学知道调用res文件下的资源文件是比较简单的。比如找到布局文件:
setContentView(R.layout.cottom_dialog);
参考Android的形式在代码中用法类似。比如创建背景精灵:
Sprite* bg =Sprite::create(R.image.more_bg);
bg->setPosition(Point(960,540));
this->addChild(bg,0);
将makeResListtoc++.sh 放在Resources ,进入终端 运行一下makeResListtoc++.sh 生成的ResourcesPath.h 放在了Classes,如下图。
// // // ResourcesPath.h // // Created by lili on 2014-09-30 // // #ifndef ResourcesPath_h #define ResourcesPath_h static struct Resourses{ struct Image{ std::string baozha = "flygame/baozha.png"; std::string p_zhuye = "public/pic/p_zhuye.png"; } image; struct Plist{ std::string baozha = "flygame/baozha.plist"; std::string dangeres = "flygame/dangeres.plist"; std::string p_s5_0001 = "public/pic/p_s5_0001.plist"; } plist; struct Audio{ std::string s_bubble = "flygame/audio/s_bubble.mp3"; std::string s_bullet_bong = "flygame/audio/s_bullet_bong.wav"; std::string p_wind_en = "public/audio/s5/p_wind_en.mp3"; } audio; struct Font{ std::string arial = "fonts/arial.ttf"; } font; struct Json{ std::string appinfodata = "more/image/appinfodata.json"; } json; } R; #endif
如何得到makeResListtoc++.sh
传送门
GitHub:https://github.com/baibai2013/cocos2d-x-3.0-ResoucePath
原文链接:https://www.f2er.com/cocos2dx/347132.html