Пример #1
0
        public void GoldFly(int count)    //金币飘字
        {
            MeDisplay me = AppMap.Instance.me;
            var       actionControler = me.Controller;
            Vector3   pos             = actionControler.transform.position;

            pos.y += actionControler.GetMeByType <ActionDisplay>().BoxCollider2D.size.y;
            HeadInfoItemManager.Instance.ShowHeadInfo("金币" + count, Color.green, pos, me.CurFaceDire, HeadInfoItemType.TypePetTalentHp);
        }
Пример #2
0
        /**创建本玩家**/

        private void CreateMe(bool isFirstIntoScene)
        {
            MapRange mapRange = AppMap.Instance.mapParser.CurrentMapRange;

            if (AppMap.Instance.mapParser.MapVo.type != MapTypeConst.CITY_MAP)
            {
                MeVo.instance.X = mapRange.MinX + 1;
                MeVo.instance.Y = (mapRange.MinY + mapRange.MaxY) / 2;
            }
            else
            {
                if (!isFirstIntoScene)
                {
                    MeVo.instance.X = mapRange.MaxX - Random.Range(3, 7); //在传送点旁边
                    MeVo.instance.Y = Random.Range(mapRange.MinY, mapRange.MaxY);
                }
            }
            MeDisplay me = AppMap.Instance.me;

            if (me != null)
            {
                me.ChangeDire(Directions.Right);
                InitMePos();
                _myCamera.InitPos();
                SetHeroIdleType();
                var actionControler = me.Controller as ActionControler;
                if (actionControler != null)
                {
                    actionControler.StopWalk(); //刚进场景的时候停止移动,防止出现误点导致的寻路
                }
                me.SetSortingOrder(false);
                ChangeSceneOk();
                return;
            }
            MeVo.instance.ModelLoadCallBack = LoadMeCallBack;
            MeVo.instance.IsUnbeatable      = false;
            AppMap.Instance.CreateMe(MeVo.instance);
        }
Пример #3
0
        public MapPointDisplay MapPointDisplay; //当前场景传送点

        /**创建本角色**/

        public void CreateMe(PlayerVo vo)
        {
            if (vo == null)
            {
                return;
            }
            if (_me != null)
            {
                return;
            }
            vo.Type = DisplayType.ROLE;
            _me     = new MeDisplay();
            //vo.ClothUrl = "Model/Role/" + vo.SysRoleBaseInfo.Model + "/Model/" + vo.SysRoleBaseInfo.Model +
            //              ".assetbundle";
            vo.ClothUrl = "Model/Role/" + "100001/Model/" + "100001" +
                          ".assetbundle";
            _me.SetVo(vo);
            if (_playerList.IndexOf(_me) == -1)
            {
                _playerList.Add(_me);
            }
            Object.DontDestroyOnLoad(_me.GoBase);
            Object.DontDestroyOnLoad(_me.GoCloth);
        }
Пример #4
0
        /// <summary>
        ///     进入场景后初始化一次玩家位置,防止因为同步的时间差导致进副本时玩家的初始位置不正确
        /// </summary>
        private void InitMePos()
        {
            MeDisplay me       = AppMap.Instance.me;
            MapRange  mapRange = AppMap.Instance.mapParser.CurrentMapRange;

            if (MeVo.instance.X <= mapRange.MinX)
            {
                MeVo.instance.X = mapRange.MinX + 3f;
            }
            else if (MeVo.instance.X >= mapRange.MaxX)
            {
                MeVo.instance.X = mapRange.MaxX - 3f;
            }
            me.Pos(MeVo.instance.X, MeVo.instance.Y);
            if (AppMap.Instance.mapParser.MapVo.type != MapTypeConst.CITY_MAP)
            {
                if (me.Controller.GoName != null)
                {
                    me.Controller.GoName.SetActive(false); //副本中不显示玩家名字
                    float y = me.BoxCollider2D.center.y + me.BoxCollider2D.size.y / 2;
                    me.Controller.GoName.transform.localPosition = new Vector3(0f, y, 0f);
                }
            }
            else
            {
                if (me.Controller.GoName)
                {
                    me.Controller.GoName.SetActive(true);
                    float y = me.BoxCollider2D.center.y + me.BoxCollider2D.size.y / 2;
                    me.Controller.GoName.transform.localPosition = new Vector3(0f, y + 0.3f, 0f);
                }
            }
            if (MeVo.instance.mapId != MapTypeConst.GoldHit_MAP) //如果是击石成金副本的话,显示面板
            {
                Singleton <GoldHitView> .Instance.CloseView();   //大副本的界面

                Singleton <GoldHitMainView> .Instance.CloseView();
            }
            //主城避免在传送点出生
            if (MapTypeConst.MajorCity == MeVo.instance.mapId)
            {
                if (AppMap.Instance.InHitPointPos(me.Controller.transform.position))
                {
                    Vector3 newPos = me.Controller.transform.position;
                    newPos.y += (GameConst.HitPointRadius + 0.2f);
                    me.Pos(newPos.x, newPos.y);
                }
                else if (AppMap.Instance.InWorldMapPointPos(me.Controller.transform.position))
                {
                    Vector3 newPos = me.Controller.transform.position;
                    newPos.y += (GameConst.HitPointRadius + 0.2f);
                    me.Pos(newPos.x, newPos.y);
                }
            }
            //脚底灰尘特效位置初始化
            GameObject footSmokeObj = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_FootSmoke);

            if (null != footSmokeObj)
            {
                footSmokeObj.transform.position = me.Controller.transform.position;
            }
            GameObject autoRoad = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_AutoSerachRoad);

            if (null != autoRoad)
            {
                autoRoad.transform.position = AppMap.Instance.me.Controller.transform.position + new Vector3(0, 2.2f, 0);
            }
            if (AppMap.Instance.mapParser.NeedSyn)
            {
                RoleMode.Instance.SendStatuChange(); //主角进入场景时同步一次位置信息
            }
        }