自从上文提及的实现多关卡独立控制后,游戏主文件的代码量随着关卡的增多,成倍的增长,这带来了很多潜在的问题,比如:
1 | 1:某相同功能(比如:敌方飞机的某特性)需要批量调整时,需要进三个关卡分别进行修改,耗时耗力,还容易出错; |
这一周就寻思着,能不能将各种功能进行模块化,通过调用实现功能,最大限度实现代码复用,通过前期用小的功能模块进行尝试,发现可行,于是逐渐深入解耦,直到今天晚上终于完成了整个游戏主程序的代码重构。
在代码重构过程中,有几点感触:
1 | 1:重构过程中,发现了很多以前代码隐藏的BUG,如果不经历这个过程,估计都很难发现(比如:通过Failed Screen调用重玩一局游戏时,对方BOSS还隐身在上一次对战结束时的位置,让我方飞机发生遇到“空气”坠机事件、每个STAGE的主游戏LOOP里面都发现了有两处都在同时控制SWITCH_IMAGE参数,一处是1帧取反一次,一次是10帧取反一次,导致游戏的一些动画显示效果不明显...); |
模块化完成后,试玩了两局,第一感觉没什么问题了,明天再进行完全的测试,如果功能与BUG测试OK,就可以进行如下工作了:
1 | 1:游戏难度与可玩性调试:通过设置不同的背景图片滚动速度来控制每个关卡的游戏时间、设置每个难度增加的敌机数量来控制游戏的困难程度等,调试出一个大众能接受的游戏难度与节奏; |
其实本次模块化,还留有一个不影响游戏运行的“小尾巴”还没完美解决,问题描述如下,后续在考虑下:
1 | 问题描述: |
好了,这两天解耦重构的挺辛苦的,费脑费力,感觉有了这次的模块化框架后,后续的游戏开发将容易太多,毕竟重构耗费的精力,有时比重写一次还多。
上床睡觉了,可以睡个好觉了,晚安~