在我的游戏的开始菜单中,我不想这样当你按下“继续”按钮时,你会得到你最后一次玩的分数。我已经修复了保存分数的代码和加载分数的代码,所以继续按钮没有任何问题。
但是对于“新游戏”按钮,我遇到了一些困难。当按下该按钮时,我需要重置存储分数的文件(将其中的数字设置为 0 而不是最后一个分数)。我试图ActionListener
在按钮中包含此代码,但它没有将 .dat 文件中的文本设置为 0,但它在末尾添加了一个 0。
try{
String zero = "0";
byte[] reset = zero.getBytes();
player.getFile().write(reset);
}catch (IOException ex){
}
我也尝试过player.setScore("0");
每次敌人死亡时使用它来添加 10 分数,但它仍然会从 .dat 文件中获取分数。
这是播放器类中处理文件加载和保存的两个方法。
public void save(){
try{
getScore = new File("Score.dat");
scoreFile = new FileOutputStream(getScore);
byte[] saveScore = score.getBytes();
scoreFile.write(saveScore);
}catch(FileNotFoundException ex){
}catch(IOException ex){
}
}
public void load(){
try{
br = new BufferedReader(new FileReader("Score.dat"));
score = br.readLine();
}catch (FileNotFoundException ex){
}catch(IOException ex){
}
}
我还尝试仅在load()
按下“继续”按钮而不是“新游戏”按钮时运行该方法,但出现java.lang.NullPointerException
错误。