设计模式在游戏中的应用--策略模式(二)
来源:互联网 发布:杭州baidu seo 编辑:程序博客网 时间:2024/04/29 21:22
自己接触MMORPG游戏的服务器也有段时间了,自己也从中学习了许多。Dota是我比较熟悉和喜欢的游戏,Dota里面的技能种类确实很繁多。Dota里面的技能伤害区域有很多,火女可以打出圆形的的伤害,向前冲的伤害,沙王可以打出以自己为中心的伤害。
如果是我们设计游戏的话,如何来完成这些需求呢?
圆形区域伤害,矩形区域伤害,单个物体伤害等等可以理解为不同的算法。
策略模式:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
策略模式相对于简单工厂模式的特点主要是相互替换,例如我们一个技能施法的时候选择自己身边的一个物体,然后在这个物体的产生爆炸效果。
我们仔细分析这个需求就可以发现,其实在这一个技能释放的过程中,顺序地使用了2种选择目标的方式,这种替换的操作不适合简单工厂这种模式,因为简单工厂和工厂对象之间只是简单的关联关系,而策略模式的上下文和策略接口之间的关系是聚合的关系。
下图是简单工厂模式:
下图是简单策略模式:
策略模式在使用过程中由于策略模式对应的算法的个数是一定的,例如一个游戏能够提供几种伤害形式是一定的,所以可以设计成单例模式的,同时在策略模式的过程中一般也使用函数指针来根据传入的不同是参数调用不同的算法。
实现一个功能的方式多种多样,如何增加扩展性等是需要思考的!
0 0
- 设计模式在游戏中的应用--策略模式(二)
- 设计模式在游戏中的应用说明(二)
- 策略模式在游戏客户端中的应用
- 设计模式在游戏中的应用--装饰模式(三)
- 设计模式在游戏中的应用--代理模式(四)
- 设计模式在游戏中的应用--原型模式(六)
- 设计模式在游戏中的应用--外观模式(八)
- 设计模式在游戏中的应用--观察者模式(十)
- builder模式在游戏设计中的应用
- 设计模式在游戏开发中的应用
- 设计模式在android中的应用之2,策略模式
- 设计模式在游戏中的应用说明(一)
- 设计模式在游戏中的应用--工厂方法(五)
- 设计模式在游戏中的应用--模板方法(七)
- Unity客户端框架笔记(状态模式和策略模式在游戏中的应用)
- Unity客户端框架笔记(状态模式和策略模式在游戏中的应用)
- 游戏中的设计模式五(策略模式)
- 设计模式在游戏开发中的应用之命令模式
- 安装配置Oracle GoldenGate Director监控goldengate进程
- js放烟花效果,刚从某个网站扒下来的
- 找出数组中第一个重复出现的数
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- JS中判断鼠标按键
- 设计模式在游戏中的应用--策略模式(二)
- LINK : warning LNK4075: 忽略”/EDITANDCONTINUE”(由于”/INCREMENTAL:NO”规范)
- Link all references for a local rename (does not change references in other files)
- 使用xdebug调试YII程序的时候抛出CException异常
- php 导出csv文件
- 关于 android 5.0 网络图标上的感叹号及其解决办法
- 掌握求职门票
- Git常用命令备注
- iOS中调用短信和邮箱的方法