首 页 | 新 闻 | Symbian | Windows Mobile| J2ME | 下载中心 | 游戏策划 | 购书指南 | 移动开发视频教程
您现在的位置: 开发视界 >> 专家专栏 >> 许伟东 >> J2ME >> 文章正文
脚本引擎之--更好的配置文件解析
作者:许伟东    文章来源:本站原创    更新时间:2005-11-3 21:36:25

本来打算一并将这些东西写出来,但最近的确是发生了很多事情。以至于让我除了正常的工作之外,没有多少时间写下续篇(除非我不吃、不睡^-^)。

前阵子给出的RPG等游戏的角色及其他要素解析的属性的配置文件格式。显然是一目了然的,但手机毕竟不比PC,隐藏在jar文件中的内容也许要需要开发人员去了解就足够了。不需要像如《极品飞车6》里那样,玩家可以直观的通过修改每辆车的配置文件里的赛车属性来改变赛车的性能。至少到现在,好像还没有手机游戏可以通过这种方式进行修改。

曾经有朋友提醒我,如果写在程序里,可能会意外的将整个JAR包的size扩大出想像的范围。因此,我设计出了一种全新的配置文件格式,也许有其他人已经这么做了。

这种格式较以前格式来说,是这样的:

 

以前的格式:

 

[小怪物]

名称=小王八

性别=中性

年龄=2

……

 

新的格式:

 

[小怪物]

小王八,中性,2

……

 

通过对比可以看出,后一种方式可以节省不知多少个size呀!

其实进行这种简单的字符的解析方式并不难。

下面我会给出这段解析的程序,其他说明依然写于代码之中。如下:

public void readAllContent(String sFile)

  {

    InputStream input;

    input = getClass().getResourceAsStream(sFile);

    strData = this.ascToUTF8(input);

  }

 

  public String readData(String sIndex, int now)

  {

    String tmpData = strData;

    String str2 = null;

    Vector v1 = new Vector(); //sIndex的值

    Vector v2 = new Vector(); //sContent的值

    Vector v3 = new Vector(); //逗号之间的内容

    int p, q, l, i; //保存各字符的索引

    while ((p = tmpData.indexOf("[")) != -1 &&

           (q = tmpData.indexOf("]")) != -1)

    {

      v1.addElement(tmpData.substring(p + 1, q));

      tmpData = tmpData.substring(q + 1);

    }

    tmpData = strData;

    if ((q = tmpData.indexOf("]")) != -1)

    {

      str2 = tmpData.substring(q + 1);

      while((p = str2.indexOf("[")) != -1 &&

           (q = str2.indexOf("]")) != -1)

      {

        v2.addElement(str2.substring(1, p).trim());

        str2 = str2.substring(q + 1);

      }

    }

    for(int w=0;w<v2.size();w++)

    {

      str2 = v2.elementAt(w).toString();

      if(v1.elementAt(w).toString().trim().equals(sIndex))

      {

        while ((p = str2.indexOf((char)44)) != -1)

        {

          v3.addElement(str2.substring(0, p).trim());

          str2 = str2.substring(p + 1);

        }

        sCon = v3.elementAt(now).toString().trim();

      }

    }

    return sCon;

  }

相信如果看过我前面的文章,这里的程序并不难理解。可以把这段程序放到我最初给出的ConfigFile.java文件中。(无缝对接)

后面的关于脚本解析的内容将会更精彩,因为我会做一个实现类似简单JAVA语言的脚本解析类。如果有好的建议等请告诉我,为了中国手游事业,一起进步^-^

相关文章:
脚本引擎之----读取INI配置文件