예제 #1
0
        //-------------------------------------------------------------------------
        public void update(float elapsed_tm)
        {
            if (mIsLoadingScene)
            {
                if (mLoadableManager.Loaded)
                {
                    getListener().onSceneCreated();
                    mIsLoadingScene = false;
                    mLoadableManager.destroy();
                    //UiMgr.Instance.destroyCurrentUi<UiMbLoading>();
                    return;
                }

                mLoadableManager.update(elapsed_tm);
                _loadingInfo(mLoadableManager.Progress, mLoadableManager.LoadingInfo);
                return;
            }

            mRenderObjectPool.update();// 要先于Level Update

            mProtocol.update(elapsed_tm);

            foreach (var it in mParticleTurnplateCallerQueue)
            {
                it.update(elapsed_tm);
            }

            mParticlemanager.update(elapsed_tm);

            // 根据屏幕分辨率更新坐标
            Resolution cur_resolution = Screen.currentResolution;

            CCoordinate.setCoordinate(new EbVector3(Screen.width, Screen.height, 0),
                                      EbVector3.Zero, new EbVector3(Screen.width, Screen.height, 0));

            // 更新炮台
            foreach (var i in mMapPlayerTurret)
            {
                i.Value.update(elapsed_tm);
            }

            // 更新关卡
            if (mLevel != null)
            {
                mLevel.update(elapsed_tm);
            }

            // 更新效果管理器
            mEffectMgr.update(elapsed_tm);

            // 更新所有鱼死亡分数显示
            CSpriteFishDieScore.updateall(elapsed_tm);

            // 本人正在观战
            if (mMyTurret == null && mLevel != null)
            {
                string str = "正在观战中...";
                //getListener().onSceneShowMessageBox(str, false, "", 1, (int)_eMessageBoxLayer.Ob, true, true);
            }

            displaySceneStateInfo(elapsed_tm);
        }