// Use this for initialization
    void Start()
    {
        if (unitContainer)
        {
            unitMgr = unitContainer.GetComponent <SFUnitManager>();
        }
        SFBattleController.currentBattle = this;

        // 加载场景
        SFUtils.log("mapId:{0}", SFBattleData.instance.enterBattle_mapId);
        string mapName   = string.Format("map_{0}", SFBattleData.instance.enterBattle_mapId);
        var    mapPrefab = Resources.Load("Prefabs/Maps/" + mapName) as GameObject;

        if (mapPrefab == null)
        {
            SFUtils.log("场景加载失败:Prefabs/Maps/" + mapName);
        }
        else
        {
            GameObject.Instantiate(mapPrefab, unitContainer.transform.parent);
        }

        // 加载HUD
        SFSceneManager.addView("vwHUD");

        // 加载角色
        if (unitMgr)
        {
            unitMgr.initUnits();
        }

        // 网络断开
        SFNetworkManager.instance.dispatcher.addEventListener(this, SFEvent.EVENT_NETWORK_INTERRUPTED, onNetworkInterrupted);
    }
Beispiel #2
0
        public void initWithView(SFBaseView view)
        {
            m_view = view as SFMainView;

            m_view.addEventListener(m_view.btnLogout, SFEvent.EVENT_UI_CLICK, onLogout);
            SFNetworkManager.instance.dispatcher.addEventListener(SFResponseMsgUnitLogin.pName, onLogoutResult);

            SFSceneManager.addView("vwPlay", m_view.imgPos.transform);
            m_view.lblUid.text = SFUserData.instance.uid;
        }
Beispiel #3
0
 // Use this for initialization
 void Start()
 {
     if (SFNetworkManager.instance != null && SFNetworkManager.instance.isReady())
     {
         SFSceneManager.addView("vwMain");
     }
     else
     {
         SFSceneManager.addView("vwLogin");
     }
 }
Beispiel #4
0
        void onLogoutResult(SFEvent e)
        {
            var data = e.data as SFResponseMsgUnitLogin;

            if (data.retCode == 0)
            {
                SFNetworkManager.instance.uninit();
                m_view.removeView();
                SFSceneManager.addView("vwLogin");
            }
            else
            {
                SFUtils.logWarning("登出失败");
            }
        }
        void onLoginResult(SFEvent e)
        {
            var data = e.data as SFResponseMsgUnitLogin;

            if (data.retCode == 0)
            {
                m_infoMsg = "登陆成功...";
                m_view.removeView();
                SFSceneManager.addView("vwMain");
            }
            else
            {
                m_infoMsg   = string.Format("登陆失败,错误码:{0}", data.retCode);
                m_willReset = true;
            }
        }
Beispiel #6
0
        void onUnitAddRemove(SFEvent e)
        {
            var data = e.data as SFUnitAddRemove;

            if (data.addOrRemove == true)
            {
                // 添加角色
                var newGO = m_view.scrLeftPlayers.AddItem(SFSceneManager.getView("vwUnitStatusItem"));
                if (newGO != null)
                {
                    var item = newGO.GetComponent <SFUnitStatusItemView>().getPresenter();
                    item.init(data);
                }
            }
            else
            {
                // 移除角色
            }
        }
    public void updateStatus(SFMsgDataUserSyncInfo info)
    {
        bool lifeChanged = m_curLife != info.life;

        m_curPosX     = info.posX;
        m_curPosY     = info.posY;
        m_curRotation = info.rotation;
        m_curSpeedX   = info.speedX;
        m_curSpeedY   = info.speedY;
        m_curLife     = info.life;
        m_maxLife     = info.maxLife;

        if (info.skillId > 0)
        {
            this.skill(info.skillId, info.skillData);
        }

        if (lifeChanged)
        {
            var data = new SFUnitLifeChange();
            data.uid     = uid;
            data.curLife = m_curLife;
            data.maxLife = m_maxLife;
            SFBattleData.instance.dispatcher.dispatchEvent(SFEvent.EVENT_UNIT_LIFE_CHANGE, data);
            if (uid == SFUserData.instance.uid && m_curLife <= 0)
            {
                // 死亡,游戏结束
                SFUtils.log("游戏结束");
                m_curSpeedX = 0;
                m_curSpeedY = 0;
                body.SetActive(false);
                // 播放爆炸动画
                explodeFX.Play();
                GameObject.Destroy(gameObject, 1.5f);
                // 显示结束UI
                SFSceneManager.addView("vwGameOver");
                SFBattleData.instance.isGameOver = true;
            }
        }
    }
    /// <summary>
    /// 根据给定的View Name将UI添加到场景中,可指定父节点(默认uiRoot),层级
    /// </summary>
    /// <returns>The view.</returns>
    /// <param name="viewName">View名称</param>
    /// <param name="trans">父节点,默认uiRoot</param>
    /// <param name="sibIdx">层级,默认最上层</param>
    static public GameObject addView(string viewName, Transform trans = null, int sibIdx = -1)
    {
        var prefab = getView(viewName);

        return(SFSceneManager.addView(prefab, trans, sibIdx));
    }
 public void onLogout(SFEvent e)
 {
     SFSceneManager.addView("vwTest", m_view.imgPos.transform);
 }
Beispiel #10
0
 void onMenu(SFEvent e)
 {
     m_view.scrSkills.AddItem(SFSceneManager.getView("vwSkillItem"));
 }