实现用鼠标单击视口,图标移动到当前点击位置,并将位置信息封装为字典,然后转化为JSON格式,保存到外部文件,然后二次运行的时候,从外部文件读取JSON内容,转化为字典,然后再次还原上次的图标位置。
这只是一个非常简单的案例,但是已经接触了Godot文件存取信息的核心。
extends Node2D
var fPath = "res://txt.json"
var json = {}
func _ready():
var f = File.new()
# 文件是否存在
if f.file_exists(fPath):
f.open(fPath,File.READ)
var text = f.get_as_text()
f.close()
# 将JSON文本转化为Godot字典。
json = parse_json(text)
print(json is Dictionary) # 返回true
$icon.position.x = json.position.x
$icon.position.y = json.position.y
else: # 文件不存在
json ={
"position":{
"x":$icon.position.x,
"y":$icon.position.y,
}
}
f.open(fPath,File.WRITE)
f.store_string(to_json(json))
f.close()
func _input(event):
# 鼠标点击
if event as InputEventMouseButton:
$icon.position = event.position
json.position.x = $icon.position.x
json.position.y = $icon.position.y
# 将对象转化为JSON
var text = to_json(json)
var f = File.new()
f.open("res://txt.json",File.WRITE)
f.store_string(text)
f.close()