关于萌熊跑酷的MVC框架
我想问问控制器发事件,就是在C#中,我发送事件了,他是怎么执行的,百度的框架图中有一条线是从模型指向视图,这是发送事件,也就是说我从模型发送事件给视图,视图接收后怎么执行?可以的话希望老师能列举具体的事件说明一下,被发送的事件,怎么执行,发送的是什么,还有为什么每个控制器只对应一个事件(因为一些原因目前只是把萌熊跑酷的框架那部分学完了,没有继续往下看,现在很纠结框架的核心思想)
思绪很乱,上面基本可以算是一个问题吧,还有就是我陈述一下目前我对MVC框架的了解,希望老师看一下对错
视图的功能就是能做到一个完整的游戏进程,通过框架拿到自己想要的模型,进而根据已有模型来达到改变的状态
控制器就是执行事件,能改视图和模型
模型就是存游戏数据的,控制器改变了模型就改视图
老师看一下揪下错,谢谢
问题1:发送事件决定谁来执行主要看MVC这个函数
 //发送事件
    public static void SendEvent(string eventName,object data = null) {
        //controller执行 
        if (CommandMap.ContainsKey(eventName)) {
            Type t = CommandMap[eventName];
            //控制器生成
            Controller c = Activator.CreateInstance(t) as Controller;
            c.Execute(data );
        }
        //view处理
        foreach (var v in Views.Values) {
                if (v.AttentionList.Contains(eventName)) {
                    //执行
                    v.HandleEvent(eventName,data);
                }
        }
    }
一旦确定视图的AttentionList里边有这个关心事件,就会执行HandleEvent(eventName,data) 这个函数。
举个例子,在UIBoard里边,HandleEvent可以处理很多对应的事件。
public override void HandleEvent(string name, object data)
    {
        switch (name)
        {
            case Consts.E_UpdataDis:
                DistanceArgs e1 = data as DistanceArgs;
                Distance = e1.distance;
                break;
            case Consts.E_UpdateCoin:
                CoinArgs e2 = data as CoinArgs;
                Coin += e2.coin;
                break;
            case Consts.E_HitAddTime:
                Times += 20;
                break;
            case Consts.E_HitGoalTrigger:
                ShowGoalClick();
                break;
            case Consts.E_ShootGoal:
                m_GoalCount += 1;
                print("进了"+m_GoalCount + "球");
                break;
        }
    }
当要更新金币UI显示时,接收到的事件是E_UpdateCoin,
所以只要执行 
CoinArgs e2 = data as CoinArgs;
Coin += e2.coin;
这个就好
问题2:基本对,视图不太准确。
Model,主要是数据、业务逻辑和业务规则。相对而言,这是MVC中比较稳定的部分,一般成品后不会改变。
View是指视图,也就是呈现给用户的一个界面,是model的具体表现形式,也是收集用户输入的地方。
Contorller指的是控制器,主要负责与model和view打交道。它决定使用哪些Model,对Model执行什么操作,为视图准备哪些数据,是MVC中沟通的桥梁。