点击上方亿元程序员+关注和★星标
引言
大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
游戏中的存档功能我们可以利用设计模式中的备忘录模式完成,BUG还比较少
在游戏开发过程中,我们经常会遇到需要保存和恢复对象状态 的场景。为了解决这个问题,我们可以使用备忘录模式 。那么,什么是 备忘录模式?它有哪些优点 ?又该如何在游戏开发中使用呢?本文将为您详细介绍。
本文源码和源工程在文末获取,小伙伴们自行前往。
什么是备忘录模式?
备忘录模式(Memento Pattern)是一种行为型设计模式 ,它通过创建一个备忘录来存储对象的内部状态 ,以便在需要时恢复 对象的状态。这种模式主要用于避免对象状态的频繁变化,从而提高性能。
它主要包含三个角色:发起人 (Originator)、备忘录 (Memento)和负责人(Caretaker)。
备忘录模式的优点
简化了对象的状态管理:备忘录模式将复杂的状态管理过程封装在备忘录类中,使得客户端代码更加简洁。
提高了代码的可读性和可维护性:通过使用备忘录模式,我们可以将对象的状态恢复逻辑与业务逻辑分离,使得代码更加清晰易懂。
降低了系统的耦合度:备忘录模式使得对象的状态恢复过程与客户端代码解耦,降低了系统之间的依赖关系。
如何在游戏开发中使用备忘录模式设计存档功能?
在游戏开发中,我们经常需要保存和恢复游戏关卡、角色状态等对象的状态。以下是一个简单的示例,展示了如何在游戏开发中使用备忘录模式。
1.备忘录类
首先 定义一个备忘录类,用于存储 发起人的内部状态。备忘录通常包含 一个或多个属性,用于表示 发起人的状态。同时,备忘录可以防止 发起人以外的其他对象访问 其内部状态。这里我们存储兔子的坐标。
2.发起人类
然后 定义一个发起人类,用于记录 当前时刻的内部状态,并负责定义 哪些属于备份范围的状态。此外,发起人还需要负责创建 备忘录以及使用 备忘录恢复状态。这里我们负责创建兔子坐标的备忘录信息 和恢复兔子的坐标信息。
3.负责人类
最后 定义一个负责人类,负责保存 备忘录,但并不对 备忘录的内容进行操作或检查 。负责人提供 保存与获取备忘录的功能,使得在需要的时候可以恢复 发起人的某一历史状态 。这里负责保存和恢复兔子坐标的备忘录信息。
4.测试代码
今天我们的主角是一只兔子 ,按照惯例加载兔子并且播放动画 ,然后我们创建一个发起人Originator
以及负责人Caretaker
。
然后添加交互事件 :包括兔子的拖拽效果 ,改变兔子的位置,以及键盘事件 s
保存和r
恢复。
5.结果演示
首先我们通过鼠标拖拽兔子到不同的位置 ,同时通过键盘s
记录每个位置的坐标信息。
然后通过键盘r
将兔子恢复到前面逐个记录的位置。
通过以上示例 ,我们可以看到,在游戏开发中使用备忘录模式可以有效地简化对象状态的管理,提高代码的可读性和可维护性 。同时,备忘录模式还可以降低系统之间的耦合度 ,使得代码更加灵活和易于扩展。
结语
在哪里 可以看到如此清晰的思路,快跟上我的节奏!关注我 ,和我一起了解 游戏行业最新动态,学习游戏开发技巧。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。
AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。
实不相瞒,想要个赞 和在看 !请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐专栏:
关注我,发送"备忘录模式"获取源码和源工程。
点击下方绿色按钮+关注