点击上方<font color=blue>亿元程序员</font>+关注和<font color=orange>★</font>星标

见鬼了,Logo动起来了

引言

大家好,我是亿元程序员,一位有着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开始回放命令。

上下左右baba

执行命令的时候将命令加入命令队列,并且记录命令执行时间。

记录你的生活

重置角色状态,设定回放的时间并且开始回放

准备好了吗

轮询命令时间队列,到达时间后开始回放指定命令。

让我们再来一次

5.结果演示

成功实现控制角色的移动和跳跃

是我是我

然后我们测试下回放命令,按下按键r

玉足

成功实现回放(因为结果是一样的所以用了上面的视频,理论没问题,出问题就是代码出了问题)。

听君一席话如听一席话

结语

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

8年主程手把手打造Cocos独立游戏开发框架

从零开始开发贪吃蛇小游戏到上线系列

游戏开发的技巧、心得、资讯

GitHub地址:

https://github.com/lswgit/YiyuanGameProgrammingPatterns.git

点击下方<font color=green>绿色按钮</font>+关注


亿元程序员
10 声望25 粉丝

关注"亿元程序员",给大家分享游戏开发经验。