我使用的是MVC的架构,在这个游戏里,像赛车这样的对象作为模型,提供控制的方法,而用户处理,关卡控制作为控制器,用户的界面显示这些模型的信息。如赛车的速度,关卡能否解锁等。
设计模式可以在代码量增长时提供方便的维护方法,用例如观察者模式,状态模式,等可以很好解耦不同类,不同功能之间的依赖,如赛车受到碰撞时要发出碰撞的音效,如果把物理和音效放在一段代码里,会导致两个系统的直接耦合,不利于之后功能的拓展,且可能会发生难以预测的bug。
在做闯关控制器时,观察者模式也发挥了很大的作用,之前的代码,在流程中加入了对其它控制器的调用,如在倒计时的时候关闭用户赛车控制,在暂停的时候调低音效,在结束的时候调用UI显示,退出的时候进行数据保存等。。。这一个流程下来,关卡控制几乎所有控制器都调用了一遍,如果一个功能出了bug,可能都要修改闯关控制器的代码,所以,为了编程上的思路清晰,代替直接调用其它相关的控制器,在闯关控制器的每个控制阶段都调用一次相关的事件,其它的系统想要进行响应,只需要订阅此事件就可以了
————————————————
版权声明:本文为CSDN博主「小皮蛋Yiki」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21402249/article/details/80710255