欢迎光临散文网 会员登陆 & 注册

《游戏编程模式》笔记——命令模式

2023-08-30 03:04 作者:黑白色的枫  | 我要投稿

命令模式的定义

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

命令模式是一种回调的面向对象实现

命令是具现化的方法调用。

说人话就是,命令模式把原本的函数调用封装成了类,执行命令的时候调用这个类的对象去执行想要的操作。因为类的可扩展性高,可以通过队列和类的扩展来支持撤销和重做的操作。

撤销和重做

撤销和重做是命令模式最广为人知的使用情况。

如果一个命令对象可以做一件事,那么它也可以撤销这件事。

例如战棋游戏里游戏里的撤销移动,建筑游戏里撤销建筑的摆放。

实现撤销和重做,需要记录执行命令的对象、命令执行前对象的状态和命令执行后的状态,在撤销时将状态还原到执行前,重做时还原到执行后。

并且需要一个列表来记录所有执行的命令,且有一个索引指向当前的命令,撤销时索引后撤,重做时索引推进。

有新的命令加入时,需要移除所有已经撤销的操作。

AI

命令模式也可以作用在敌人身上,使用状态机或行为树来调用不同的命令。

也可以为玩家的角色加上AI,这在游戏需要自动演示的时候很有用。


参考:

《游戏编程模式》


《游戏编程模式》笔记——命令模式的评论 (共 条)

分享到微博请遵守国家法律