视频演示 百度网盘链接:http://pan.baidu.com/s/1bp1zmPp 密码:zdo0
你好,这款Demo主要想把眼睛和英语结合起来,所以根据这个思想我做了五个demo,有些是我平时有一点兴趣结合进来的,比如捕鱼之类的,
这款游戏主要采取的设计框架就是:通过有限状态机完成状态的转换,进行一些update 操作,通过栈管理器进行面板的操作,接下来我画出了一个类图来进行如下的分析:
游戏管理器:
在上图两个虚线相切的上面即是有限状态机,最主要的还是两个抽象类的搭建,
1.通过FsmSystem可以记录所有的状态并进行状态的切换,我们在使用它的时候只需要依赖他进行具体状态的绑定,具体状态的切换即可
2.而State抽象类可以记录某个具体状态类的具体条件和转换到某个状态,通过继承他可以进行自己事情的处理.
3.UIManger,也就是面板的管理器,作用就是打开关闭面板以及进行面板的叠加操作,由于非常符合栈的思想,我们就使用通过压栈的方式进行处理面板.
流程是这样的:通过解析json得到Resouce目录下面板的预制体的路径,通过Dictionary访问或创建具体的预制体,然后我们就可以通过启用或者关闭面板来进行面板的显示了.
缺点:
1.由于当初没有考虑到面板之间需要进行交互,所以导致后期进行交互时通过静态变量进行访问,在一定程度上导致了访问的混乱和修改的混乱,没法进行完全的封装,如果现在让我来处理,我会给这些面板当做同事类,给他们添加一个中介者,让他们的交互需要和中介者进行交流.
2.当我们点击按钮的时候有可能跳转到非游戏状态或者游戏状态,我当时处理是通过事件进行跳转的,这可能导致不容易管理这些乱七八糟的注册.