📄 reader.java
字号:
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 + -