从游戏的完整性角度来说,我们还有一些工作要做。例如人机对战的难度,我们可以进行调节;背景音乐要不要自动播放,我们也需要设置;如果有人喜欢我们的游戏,想联系我们,我们应该有个关于页面让别人能找到我们。因此,我们需要给游戏添加一个设置页。
本节概要
- 实现本地配置的持久化工具
- 实现设置页面
- 在关于页面中获取版本信息和链接
实现保存配置的工具类
为了能让玩家的设置被保留起来,我们先在 lib/common 文件夹下实现一个工具类 Profile,它以键值对的方式,将用户设置信息保存在手机存储中,下次游戏开始时,自动加载并应用这些配置信息:
import 'dart:convert';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
// 基于本地文件和 Json 操作,实现本地持久化
class Profile {
//
static const DefaultFileName = 'default-profile.json';
static Profile _shared;
File _file;
Map<String, dynamic> _values = {};
static shared() async {
//
if (_shared == null) {
_shared = Profile();
await _shared._load(DefaultFileName);
}
return _shared;
}
// 重定义数组操作
operator [](String key) =&