很久没有更新博客了!一方面最近交了女朋友,所以心思难免有点不在状态;另一方面最近也都在开发具体的逻辑,很难有一些总结之类的东西出来跟大家分享,就把最近在调试的战斗技能部分拿出来跟大家分享下吧!在二次开发的基础上做的新的技能系统,和战斗系统。之前的战斗系统写的太乱,用一个递归函数+ 定时器;是在无法簇读;就推翻之,从新设计。由于在技能战斗这块我也是新手,总害怕自己给自己挖坑,在加上自己不熟悉的java,无论在设计上还是在实际编码的过程中,总是小心翼翼!
先粗略看下uml吧!
这是技能最初版本的设计,实际的项目中,对于参数进行了修正,同时在技能类和技能接口之间添加了一个抽象技能类,毕竟很多技能的数据还是可以抽离出来!相比较于之前的技能系统,我这里使用了工厂模式,和策略模式!体会到了面向对象的好处!
这是buff系统的最初设计版本,后来的版本也是一样,做了很多修正,添加了一个buff抽象类!
这是战斗的辅助系统,主要是选择攻击对象,选择释放技能等!实际的版本也是在参数上面做了很多修正!
在实际的开发过程中,遇见了很多问题,比如异常处理,之前在写C++代码的时候,很少使用异常,除非是数据库的存取;其他的方面要做足够的判断,如果是空指针野指针做了异常处理也没有用;但是在开发java的过程中就编写了较多的异常处理函数!
在java几个容器类上面也是犯了很多错误,比如说List的toArray()函数的使用,要十分的小心!我在这个上面抛出了很多异常!
不过还好,到底代码的复杂度还是在可控范围内,在调试的过程中再慢慢重构吧!