存档
var worldState:={}
const SAVE_PATH:="user://data.sav"
func saveGame()->void:
var scene=get_tree().current_scene
var sceneName:=curSceneName()
worldState[sceneName]=scene.toDict()
var data:={
worldState=worldState,
stats=playerStats.toDict(),
scene=scene.scene_file_path,
player={
direction=scene.player.direction,
position={
x=scene.player.global_position.x,
y=scene.player.global_position.y,
},
}
}
var json:=JSON.stringify(data)
var file:=FileAccess.open(SAVE_PATH,FileAccess.WRITE)
if not file:return
file.store_string(json)
读档
# 游戏读档
func loadGame()->void:
var file:=FileAccess.open(SAVE_PATH,FileAccess.READ)
if not file:return
var json:=file.get_as_text()
var data:=JSON.parse_string(json) as Dictionary
changeScene(data.scene,{
direction=data.player.direction,
position=Vector2(
data.player.position.x,
data.player.position.y
),
init=func():
worldState=data.worldState
playerStats.fromDict(data.stats)
})