⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reader.java

📁 liu7788414
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      count = m_nodeList.getLength();
      m_coins = new Coin[count];
      for (int i = 0; i < count; i++) {
        m_current = (Element) m_nodeList.item(i);
        m_coins[i] = new Coin(m_current);
      }
*/

      // bonuses
      m_setRoot = (Element) m_staticData.getElementsByTagName(XML_SET_BONUSES).
          item(0);
      m_nodeList = m_setRoot.getElementsByTagName(XML_ITEM_BONUS);
      count = m_nodeList.getLength();
      m_bonuses = new Bonus[count];
      for (int i = 0; i < count; i++) {
        m_current = (Element) m_nodeList.item(i);
        m_bonuses[i] = new Bonus(m_current);
      }

      // story mode
      NodeList storySet;
      storySet = m_staticData.getElementsByTagName(XML_SET_STORYMODE);
      m_storyModes = new StoryMode[storySet.getLength()];

      for (int i = 0; i < storySet.getLength(); i++)
        m_storyModes[i] = new StoryMode( (Element) (storySet.item(i)));


      // coin delivery info
      m_setRoot = (Element) m_staticData.getElementsByTagName(XML_COINDELIVERY).
          item(0);
      m_nodeList = m_setRoot.getElementsByTagName(XML_COIN_LEVEL);
      count = m_nodeList.getLength();
      m_coinLevels = new CoinLevel[count];
      for (int i = 0; i < count; i++) {
        m_current = (Element) m_nodeList.item(i);
        m_coinLevels[i] = new CoinLevel(m_current);
      }

      // string file
      Element e = (Element) m_staticData.getElementsByTagName(XML_STRINGFILE).
          item(0);
      m_stringFile = e.getAttribute(XML_STRINGFILE_NAME);

      if (m_stringFile.trim().length() != 0)
        ReadStringFile(m_stringFile);

      int index = resStringCount;
      for (int i = 0; i < m_storyModes.length; i++)
        for (int j = 0; j < m_storyModes[i].m_storyStages.length; j++) {
          if (m_storyModes[i].m_storyStages[j].m_words != null)
            for (int k = 0; k < m_storyModes[i].m_storyStages[j].m_words.length;
                 k++) {
              m_storyModes[i].m_storyStages[j].m_words[k].stringId = index;
              index++;
            }
        }




    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void test() {
    System.out.println();
    System.out.println("READER.TEST()");
    int count;

    // models
    if (m_models != null) {
      if (m_models.length != 0) {
        count = m_models.length;
        for (int i = 0; i < count; i++)
          m_models[i].test();
      }
    }

    // balls
    if (m_balls != null) {
      if (m_balls.length != 0) {
        count = m_balls.length;
        for (int i = 0; i < count; i++)
          m_balls[i].test();
      }
    }

    // players
    if (m_players != null) {
      if (m_players.length != 0) {
        count = m_players.length;
        for (int i = 0; i < count; i++)
          m_players[i].test();
      }
    }

    // bgs
    if (m_bgs != null) {
      if (m_bgs.length != 0) {
        count = m_bgs.length;
        for (int i = 0; i < count; i++)
          m_bgs[i].test();
      }
    }

    // coins
/*    if (m_coins != null) {
      if (m_coins.length != 0) {
        count = m_coins.length;
        for (int i = 0; i < count; i++)
          m_coins[i].test();
      }
    }
*/


    if (m_bonuses != null) {
      if (m_bonuses.length != 0) {
        count = m_bonuses.length;
        for (int i = 0; i < count; i++)
          m_bonuses[i].test();
      }
    }

    // story mode
    if (m_storyModes != null) {
      if (m_storyModes.length != 0) {
        count = m_storyModes.length;
        System.out.println("m_storyModes.length=" + count);
        for (int i = 0; i < count; i++)
          m_storyModes[i].test();
      }
    }

    // coin delivery info
    if(m_coinLevels!=null)
      if(m_coinLevels.length !=0)
      {
        count=m_coinLevels.length;
        System.out.println("m_coinLevels.length="+count);
        for (int i = 0; i < count; i++)
          m_coinLevels[i].test();
      }


    System.out.println("stringFile:" + m_stringFile);

    System.out.println("stringCount:" + resStringCount);

    for (int i = 0; i < resStringCount; i++)
      System.out.println(resStringName[i] + "=" + resStringValue[i]);

  }

  public String[] resStringName;
  public String[] resStringValue;
  public int resStringCount;

  public void ReadStringFile(String filename) {
    try {
      FileInputStream fis = new FileInputStream(filename);
      int charsCount = fis.available();
      String context = "";
      for (int i = 0; i < charsCount; i++)
        context += (char) fis.read();

      context.trim();
      String[] lines = context.split("\n");
      resStringCount = 0;
      for (int i = 0; i < lines.length; i++)
        if (lines[i].trim().length() != 0)
          resStringCount++;

      resStringName = new String[resStringCount];
      resStringValue = new String[resStringCount];

      int count = 0;
      for (int i = 0; i < lines.length; i++) {
        if (lines[i].trim().length() == 0)continue;
        String[] items = lines[i].split("=");
        if (items.length != 2)continue;
        resStringName[count] = items[0].trim();
        resStringValue[count] = items[1].trim();
        count++;
      }

    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void createResHeaderFile(String filename) {
    try {

      FileOutputStream fos = new FileOutputStream(filename);

      String line = "";
      for (int i = 0; i < resStringCount; i++) {
        line = "#define ID_" + resStringName[i].toUpperCase() + " " +
            String.valueOf(i);
        line += '\n';

        WriteStringToHeader(line, fos);
      }
      fos.close();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  private static byte[] reverseInt(int t) {
    byte[] r = new byte[4];

    r[0] = (byte) (t & 0x000000ff);
    r[1] = (byte) ( (t & 0x0000ff00) >> 8);
    r[2] = (byte) ( (t & 0x00ff0000) >> 16);
    r[3] = (byte) ( (t & 0xff000000) >> 24);

    return r;
  }

  private static byte[] reverseShort(short t) {
    byte[] r = new byte[2];

    r[0] = (byte) (t & 0x00ff);
    r[1] = (byte) ( (t & 0xff00) >> 8);

    return r;
  }

  public static int getIndexOfString(String st, String[] starray)
  // if not found, return -1;
  // found, return index in array
  {
    int count = starray.length;
    for (int i = 0; i < count; i++) {
      if (st.compareToIgnoreCase(starray[i]) == 0)
        return i;
    }
    return -1;
  }

  private static byte[] convertString(String st) {
    byte[] result;
    int count;
    count = st.length();
//    result =new byte[count+1];
    result = new byte[count];

    for (int i = 0; i < count; i++)
      result[i] = (byte) st.charAt(i);

//    result[count]='\0';

    return result;
  }

  public static void WriteString(String st, FileOutputStream fos) {

    int count = st.length();
    byte[] data;
    try {
      fos.write( (byte) count);
      data = convertString(st);
      fos.write(data);
    }
    catch (Exception e) {
      e.printStackTrace();
    }

  }

  public static void WriteInt(int value, FileOutputStream fos) {
    byte[] data;
    try {
      data = reverseInt(value);
      fos.write(data);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void WriteShort(short value, FileOutputStream fos) {
    byte[] data;
    try {
      data = reverseShort(value);
      fos.write(data);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void WriteStringToHeader(String st, FileOutputStream fos) {

    byte[] data;
    try {
      data = convertString(st);
      fos.write(data);
    }
    catch (Exception e) {
      e.printStackTrace();
    }

  }

  public int getPlayerId(String name)
  {
    if(m_players==null)return -1;
    int i;
    for(i=0;i<m_players.length;i++)
      if(m_players[i].m_name.compareToIgnoreCase(name)==0)
        return i;

    return -1;

  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -