游戏设计模式讲解(从游戏开发一个经典例子)

经常有人会说,程序员写代码要什么设计模式,随便写就行,这其实是一种很不好的习惯,就好比盖房子,不需要设计图随便盖就可以,但是想要盖成高楼大厦,一定要经过严谨的设计,不然就容易崩塌。我们采用设计模式来写代码,更多的,是为了不坑自己。

游戏设计模式讲解(从游戏开发一个经典例子)(1)

今天我们来讲一个经典的设计模式,策略模式。

举个简单的例子,我们玩RPG游戏中,玩家都有各式各样的武器,每个武器攻击的动画效果都不一样,如果我们使用简单的方式来做,可以写很多个if或者switch之类的语句,判断当前的武器是否是斧头,那么进行挥砍,判断当前的武器是否是长枪,那么刺向敌人,或者是弓箭,进行拉弓操作。并且,有些武器可能还有必杀技,又是一套很多个不同的if语句。

而策略模式,正是为了解决上述问题,策略模式,定义了算法族,并且算法之间可以互相替换。这个设计模式的好处,在于算法的变更独立于使用算法的人。可能听起来比较拗口,上述游戏设计的例子例子中,使用不同的武器,就是不同的算法,如果我们新增一个新的武器,只要新增新的算法,而去掉一个武器,只要删除旧的算法。

游戏设计模式讲解(从游戏开发一个经典例子)(2)

可能有人会问,这种设计的好处是什么呢?明明多写几个if的事情,为什么要设计得如此复杂。首先,在游戏中,除了主角之外,还有很多不同的角色跟怪物,他们也有可能可以使用多种武器,那么同样的代码要出现非常多次,非常的冗余,而在软件设计中,代码冗余的危害是非常大的,举个简单的例子,新增一个武器,就要涉及到非常多处的代码,稍有不慎,就可能会改漏,带来故障。

游戏设计模式讲解(从游戏开发一个经典例子)(3)

这个是上述例子画出来的类图,这种设计模式有什么好处呢?假如我们新增了一个新的怪物,怪物B,那么只要继承角色这个类,设置他使用的武器,就可以做出攻击动作了,同样,假如我们新增一个新的武器,例如机械键盘,那么同样只要新建一个机械键盘的类,实现武器的接口即可,当我们实现完之后,原有的主角程序员,只要调用跟换武器为机械键盘,便可以使用机械键盘去攻击了!如果我们不适用设计模式,新增一个机械键盘作为武器,又要增加多少工作量呢!

总结

作为一个程序员,我觉得对写代码应该是有追求的,那样才能够称之为一个合格的工程师,只有这样,我们才能够不停的进步。可能有人会说,这个代码已经这样了,没救了,那是否需要加强思考,找到现有的问题,再下一次设计中去解决呢?提升效率的同时又提高了自己的能力!

好了,今天我们就介绍到这里,再次祝大家中秋快乐。欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页