Processing 如何通过处理保存游戏进度

Processing 如何通过处理保存游戏进度,processing,Processing,我正在通过处理制作一个小游戏,我想知道如何使游戏能够保存游戏进度。我在谷歌上搜索了这个主题,找到了诸如saveString()和序列化之类的东西,但我并不真正了解它,也不知道如何使用它。 基本上我需要一个功能,当玩家点击保存,所有当前状态的变量,连同整个程序,都将被保存。他们可以稍后重新打开数据并从他们停止的地方继续游戏。 我想知道你们是否知道一些教程,或者给我一些提示看什么。你们需要使用和函数。首先,您需要在数据文件夹中创建一个文本文件(.txt)。然后你可以用这样的东西 //Saving

我正在通过处理制作一个小游戏,我想知道如何使游戏能够保存游戏进度。我在谷歌上搜索了这个主题,找到了诸如saveString()和序列化之类的东西,但我并不真正了解它,也不知道如何使用它。 基本上我需要一个功能,当玩家点击保存,所有当前状态的变量,连同整个程序,都将被保存。他们可以稍后重新打开数据并从他们停止的地方继续游戏。 我想知道你们是否知道一些教程,或者给我一些提示看什么。

你们需要使用和函数。首先,您需要在数据文件夹中创建一个文本文件(.txt)。然后你可以用这样的东西

//Saving

String words = "apple bear cat dog";
String[] list = split(words, ' ');//This creates a list with apple, bear, cat, and dog

// Writes the strings to a file, each on a separate line

saveStrings("nouns.txt", list);//This copies everything from the list named 'list' and pastes it onto the file 'nouns.txt'
//Calling upon the save
String lines[] = loadStrings("nouns.txt");]//This creates a list that has everything on the file 'nouns.txt'

//doing stuff with the save

println("there are " + lines.length + " lines");
for (int i = 0 ; i < lines.length; i++) {
   println(lines[i]);//This is self explanatory very simple stuff
}
//保存
String words=“苹果熊猫狗”;
字符串[]列表=拆分(单词,)//这将创建一个包含苹果、熊、猫和狗的列表
//将字符串写入文件,每个字符串位于单独的行上
保存字符串(“nomes.txt”,列表)//这将复制名为“list”的列表中的所有内容,并将其粘贴到文件“nomes.txt”中
//呼吁拯救
字符串行[]=loadStrings(“nomes.txt”);]//这将创建一个列表,其中包含文件“nomes.txt”中的所有内容
//用save做些什么
println(“有“+行.长度+”行”);
对于(int i=0;i

除了Load StutsSh()、SaveStests>>()之外,还可以考虑使用类似的函数。与使用字符串相比,它的优点是可以简化序列化基元类型和嵌套结构

下面是一个非常基本的虚构示例:

{
    "level":1,
    "difficulty":0,
    "checkpoint":3,
    "paused":true,
    "items":[0,1,2]
}
这是您加载/解析它,然后在处理中修改和保存它的方式(如果上面保存为state.json):


请注意,在示例中,使用and获取和设置一个整数。请务必检查参考资料和示例。boolean/string/float以及嵌套的JSON对象和数组也有类似的方法。

有很多方法可以做到这一点。谷歌“java写入文件”获取大量教程。如果您想继续处理,还可以查看处理API中的saveStrings()和loadStrings()函数。有没有办法在Processing中保存变量和加载变量?我刚才给了您两种方法。当你尝试它们时发生了什么?我试图保存一个基于帧数变化的变量,但它只给了我一个错误<代码>整数a=0;void setup(){size(400400);}void draw(){a=frameCount;String[]d=split(a,,);saveStrings(“text.txt”,d);}
错误再次显示“格式错误的字符常量(应为引号,got)),您的要求没有多大意义。您已经有了一个int变量。您需要一个字符串值。您想拆分什么?
JSONObject state;

void setup(){
  size(200,200);
  //load JSON
  state = loadJSONObject("state.json");
}
void draw(){
  background(0);
  text(state.toString(),10,15);
}
void keyPressed(){
  if(key == 'd'){
    //access JSON (using get methods) and modify (using set methods)
    state.setInt("difficulty",state.getInt("difficulty") + 1);
  }
  //save JSON
  saveJSONObject(state,"state.json");
}