저장 및로드로 간단한 게임을 만들고 있습니다. 지금까지 저장 게임이 작동하고 모든 개체 위치를 .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
첫 번째 줄은 플레이어의 1 인칭보기에 대한 좌표입니다. 이것은 각 좌표를 배열에 전달할 때 구현하기에 충분하므로 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 차원 (가운데 좌표를 꺼내기)으로 다른 배열을 만들 생각이었는데 각 요소는 파일의 한 줄 이었지만 어떻게해야합니까? 아니면 좀 더 우아한 방법인가요?
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
평문으로 저장해야합니까? – James
흠 ... 파일의 각 줄은 좌표 쌍입니다. 각 좌표계를 3D 환경에서 위치를 지정하는 객체로 전달하려고합니다. 어떻게해야합니까? –