点击上方<font color=blue>亿元程序员</font>+关注和<font color=orange>★</font>星标
引言
大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
说实话我也不知道王者荣耀是怎么实现战斗回放的。
但是
回放系统是如今游戏开发中一个重要的组成部分,它允许开发者记录并重放游戏中的操作,以便在需要时重新播放。在游戏设计模式当中,命令模式是一种行为型设计模式,可用于实现回放系统。
本文将介绍如何在游戏开发中运用命令模式来实现一个基本的回放系统。
本文源码和源工程在文末获取,小伙伴们自行前往。
什么是命令模式?
命令模式是一种行为型设计模式,它将请求或操作封装成一个对象,从而使开发者可以参数化客户端操作、队列请求或记录操作历史。这使得我们可以轻松地实现撤销、重做和回放功能。
下面我们来看下如何用命令模式实现回放系统
一起来实现回放系统
我们根据以下的步骤简单地通过命令模式实现一下回放系统:
1.命令接口
首先声明一个命令接口Command
,它包含命令执行方法execute
和命令的撤销方法undo
。
2.具体命令
然后我们实现具体的命令,包括左移命令MoveLeftCommand
、右移命令MoveRightCommand
和跳跃命令JumpCommand
。
3.命令队列
命令队列主要存放执行过的命令,用于实现命令的回放执行,包括添加命令addCommand
、撤销命令undoLastCommand
和回放命令reCommond
。
4.测试代码
首先定义一下我们要控制的角色Cocos的Logo,并且通过cc.SystemEvent.EventType.KEY_DOWN
事件监听我们的键盘事件。
其中键盘按键a
控制角色左移,键盘按键d
控制角色右移,键盘按键space
控制角色跳跃,键盘按键r
开始回放命令。
执行命令的时候将命令加入命令队列,并且记录命令执行时间。
重置角色状态,设定回放的时间并且开始回放。
轮询命令时间队列,到达时间后开始回放指定命令。
5.结果演示
成功实现控制角色的移动和跳跃。
然后我们测试下回放命令,按下按键r
。
成功实现回放(因为结果是一样的所以用了上面的视频,理论没问题,出问题就是代码出了问题)。
结语
在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。
AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。
实不相瞒,想要个赞和在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐专栏:
GitHub地址:
https://github.com/lswgit/YiyuanGameProgrammingPatterns.git
点击下方<font color=green>绿色按钮</font>+关注
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。