- 出道即巅峰,先做个盈利千万的小项目
- 新建 Godot 项目
- Godot 界面介绍
- FlappyBird:1.Hello World
- FlappyBird:2.坠落吧,小鸟
- FlappyBird:3.在哪坠落就在哪飞起来
- FlappyBird:4. 无限地面
- FlappyBird:4.1 无限地面之 Godot 青年 (AnimationPlayer) 版
- FlappyBird:4.2 无限地面之普通青年版
- FlappyBird:4.3 无限地面之文艺青年(shader) 版
- FlappyBird:5.1 无尽水管子滚滚来(一)
- Godot Engine:5 种碰撞体以及 RigidBody 的 4 种模式
- Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D 与 Area2D 碰撞)
- Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D 与 StaticBody2D 碰撞)
- FlappyBird:5.2 无尽水管子滚滚来(二)
- Godot Engine:Timer 节点使用范例
- FlappyBird:6 来点 MUSIC(音效系统)
- Godot Engine:用自动加载(AutoLoad) 实现单例模式(Singleton Pattern)
- FlappyBird:7 心里有数(计分系统)
- Godot Engine:本地数据存取的帮助类(加密/非加密)
- FlappyBird:8 让数据说话(显示分数)
- Godot Engine:如何使用外部字体和 Label 节点制作一个计时器
- FlappyBird:9.1 天下没有不 OVER 的 GAME(上)
- Godot Engine:两行代码实现观察者模式(Observer Pattern),就问你服不服?
- FlappyBird:9.2 天下没有不 OVER 的 GAME(下)
- FlappyBird:10 大不了从头再来(新局启动)
- Godot Engine:用 Call Method Track(方法回调轨道)实现动画回调
- FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)
- Godot Engine:屏幕振动效果的实现
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Godot Engine:本地数据存取的帮助类(加密/非加密)
FileHelper 类
所有均为静态方法
#FileHelper.gd
class_name FileHelper
#非加密存储
static func save(path,data):
var file = File.new()
file.open(path,File.WRITE)#File.WRITE 是写模式,并且如果文件不存在会自动新建文件
file.store_string(var2str(data))
file.close()
#非加密读取
static func read(path,default_data):
var data = default_data
var file = File.new()
file.open(path,File.READ_WRITE)#File.READ_WRITE 是读写模式,并且如果文件不存在会自动新建文件
var content :String = file.get_as_text()
if not content.empty():
data = str2var(content)
file.close()
return data
#加密存储
static func save_encrypted(path,data,key):
var file = File.new()
file.open_encrypted_with_pass(path,File.WRITE,key)
file.store_string(var2str(data))
file.close()
#加密读取
static func read_encrypted(path,key,default_data):
var data = default_data
var file = File.new()
file.open_encrypted_with_pass(path,File.READ_WRITE,key)
var content :String = file.get_as_text()
if not content.empty():
data = str2var(content)
file.close()
return data
测试
extends Node
func _ready():
var weapon = {"gun":"ak47","bullet":123}
var player_data = {"name":"godot","hp":50,"weapon":weapon}
save("user://player_data.res",player_data)
print("普通文件:" + str(read("user://player_data.res",{})))
save_encrypted("user://player_data.res",player_data, OS.get_unique_id())
print("加密文件:" + str(read_encrypted("user://player_data.res", OS.get_unique_id(),{})))
输出结果
普通文件:{hp:50, name:godot, weapon:{bullet:123, gun:ak47}}
加密文件:{hp:50, name:godot, weapon:{bullet:123, gun:ak47}}
普通文件的内容
{
"hp": 50,
"name": "godot",
"weapon": {
"bullet": 123,
"gun": "ak47"
}
}
加密文件的内容
GDEC 冗铟 f 剄 I 橍标 m.媩 Sb癯?幡 C 事?+E?
D 鑽儴
鮲柼
2J1?v?㈧迩漠?X[薞€Hz
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论