GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

190 信息 1080 成员
游戏开发工具 GameMaker Studio 2 的讨论小组

RPG_Basic(25): 储存游戏的简单方式

Linpean 2017-09-25

游戏存盘文件需要加密,不然就会有人破解掉,随意的在存档文件进行数据的修改哦。

根据按下确认键时,menu_index的值进行操作

Image title


移除obj_input对象内的储存previous_room的代码

Image title

将其移动到obj_player_status的create事件里面去

Image title

将整个obj_input的Step事件中负责暂停游戏的代码,全部移除掉,并移动到obj_player_status对象的step事件中去。

保持obj_input的独立,使其只负责输入,并不执行暂停和读取功能。而放在obj_player_status对象里纯粹是个人的偏好而已。

Image title

Image title


在返回按钮被选中时,按下确认,调用变量来返回上一个房间

Image title

然后添加

save存档功能:这里就需要自行编写脚本来存档自己想要保存的数据了

游戏结束功能:直接使用gamemaker内置的函数 game_end()即可

Image title

所以新建一个脚本scr_game_save()来进行存档,这里先打印一个字符串来标识调用脚本成功,脚本具体的代码内容后续补上

Image title

然后运行游戏会发现有一个报错的地方,是在obj_play_status的step事件中,忘记修改了psuse_key的调用需要加上前缀的“obj_input.”Image title

为了方便起见,这里修改了以下暂停按钮的输入为z键

Image title

运行游戏,按下Z键,发现并没有进入游戏暂定界面(房间),观察暂停事件触发的代码,发现有一个死循环


(为什么使用pause_key = keyboard_check_pressed(ord("Z"));//暂停-Z)来检测输出,会使得pause_key一直为0的问题


修改同样的错误:在obj_pause_menu对象中的step事件中,将dash_key确认菜单后,也重置为false




DS maps:一种储存信息的数据结构

Json编码:将数据结构转为字符串


将需要的存档的转为Ds_map结构,并使用Json编码转化为字符串

然后写入到存档文件中


保存脚本,运行游戏,在选中Save的情况下,按下dash_key,可以在缓存地址下,看到存档文件


 

为防止有人对存档文件进行修改,从而作弊,这里采用Base64加密(具体的加密算法请自定google,简而言之,就是类似摩斯密码,通过一个对应规则,将字母和数字转换为其他密文字母)


再次运行游戏,进行存档,可以在存档路径下,看到存档文件已经变成了“乱码”


到这里就完成了游戏存档









近期喜欢的会员

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册