我正在做一個簡單的遊戲,保存和加載。到目前爲止,我有保存遊戲的工作,它將所有的對象位置保存到一個.dat文件。每行有3個座標(x,y,z)以冒號分隔。例如:閱讀Java文件
23.762622833251953:3.887784719467163
22.5:0.5:18.5
23.5:0.5:20.5
26.5:0.5:5.5
28.5:0.5:21.5
30.5:0.5:4.5
33.5: 0.5:19.5
35.5:0.5:4.5
38.5:0.5:15.5
39.5:0.5:3.5
41.5:0.5:9.5
第一行是玩家第一人稱視角的座標。這很容易實現,因爲我將每個座標傳遞給一個數組,所以x位置是第一個元素[0],z座標是第二個元素[1]。 y座標始終是相同的,即使是塊,所以我沒有打擾保存它,但我出於某種原因爲塊做了。
這裏是保存遊戲的方法,包括:
public void saveGame()
{
File file = new File("quickSave.dat");
try {
FileWriter writer = new FileWriter(file);
writer.write(env.getCameraX()+":"+env.getCameraZ()+"\n");
for (int row = 0; row < map.length; row++)
{
for (int col = 0; col < map[row].length; col++)
{
if (map[row][col] != null) {
EnvObject block = map[row][col];
writer.write(block.getX()+":"+block.getY()+":"+block.getZ()+"\n");
}
}
}
writer.close();
JOptionPane.showMessageDialog(null, "Game saved");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
問題是從文件讀取的每一行,然後使這些座標到對象。我只將傳球座標貫徹到球員的角度,這很容易,因爲我只用了2個元素。
我正在考慮製作2維的另一個數組(取出y座標,中間一個),每個元素都是文件中的一行,但我該怎麼做?或者這是另一種更優雅的方式?
這是迄今爲止我加載遊戲方法:
public void loadGame() {
File file = new File("quickSave.dat");
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
String[] elements = line.split(":");
env.setCameraXYZ(new Float(elements[0]), 0.5,
new Float(elements[1]));
JOptionPane.showMessageDialog(null, "Game loaded");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
你可以讓*問題*清楚嗎?這是一個故事,而不是一個問題。 – ripper234 2011-03-21 22:42:52
你真的需要將它們保存爲純文本嗎? – James 2011-03-21 22:44:27
嗯......文件中的每一行都是一對座標。我想將每一行座標傳遞給一個在3D環境中給它定位的對象。我該怎麼做呢? – 2011-03-21 22:44:39