简介
做游戏难免和各种图片和声音,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);
如何生成Resource.h 文件
将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