面试官请进:我的Demo框架图

来源:互联网 发布:cfbugfps软件怎么调 编辑:程序博客网 时间:2024/05/06 10:44

视频演示   百度网盘链接:http://pan.baidu.com/s/1bp1zmPp 密码:zdo0

       你好,这款Demo主要想把眼睛和英语结合起来,所以根据这个思想我做了五个demo,有些是我平时有一点兴趣结合进来的,比如捕鱼之类的,

   这款游戏主要采取的设计框架就是:通过有限状态机完成状态的转换,进行一些update 操作,通过栈管理器进行面板的操作,接下来我画出了一个类图来进行如下的分析:



游戏管理器:

在上图两个虚线相切的上面即是有限状态机,最主要的还是两个抽象类的搭建,

1.通过FsmSystem可以记录所有的状态并进行状态的切换,我们在使用它的时候只需要依赖他进行具体状态的绑定,具体状态的切换即可

2.而State抽象类可以记录某个具体状态类的具体条件和转换到某个状态,通过继承他可以进行自己事情的处理.

3.UIManger,也就是面板的管理器,作用就是打开关闭面板以及进行面板的叠加操作,由于非常符合栈的思想,我们就使用通过压栈的方式进行处理面板.

流程是这样的:通过解析json得到Resouce目录下面板的预制体的路径,通过Dictionary访问或创建具体的预制体,然后我们就可以通过启用或者关闭面板来进行面板的显示了.


缺点:

1.由于当初没有考虑到面板之间需要进行交互,所以导致后期进行交互时通过静态变量进行访问,在一定程度上导致了访问的混乱和修改的混乱,没法进行完全的封装,如果现在让我来处理,我会给这些面板当做同事类,给他们添加一个中介者,让他们的交互需要和中介者进行交流.

2.当我们点击按钮的时候有可能跳转到非游戏状态或者游戏状态,我当时处理是通过事件进行跳转的,这可能导致不容易管理这些乱七八糟的注册.