コード例 #1
0
ファイル: SaveAndLoading.cs プロジェクト: postmeJ/ADF
        /// <summary>
        /// 读取玩家的核心数据
        /// </summary>
        private void LoadFromXML_PlayerKernalData()
        {
            //参数检查
            if (string.IsNullOrEmpty(_FileNameByPlayerKernalData))
            {
                Debug.LogError("读取玩家核心参数失败!");
                return;
            }

            try {
                //读取XML数据
                string strTemp = XmlOperation.GetInstance().LoadXML(_FileNameByPlayerKernalData);
                //反序列化
                Mod_PlayerKernelData pkd = XmlOperation.GetInstance().DeserializeObject(strTemp, typeof(Mod_PlayerKernelData)) as Mod_PlayerKernelData;
                //赋值
                Mod_PlayerKernelDataProxy.GetInstance().CurHP     = pkd.CurHP;
                Mod_PlayerKernelDataProxy.GetInstance().MaxHP     = pkd.MaxHP;
                Mod_PlayerKernelDataProxy.GetInstance().CurMP     = pkd.CurMP;
                Mod_PlayerKernelDataProxy.GetInstance().MaxMP     = pkd.MaxMP;
                Mod_PlayerKernelDataProxy.GetInstance().ATK       = pkd.ATK;
                Mod_PlayerKernelDataProxy.GetInstance().DEF       = pkd.DEF;
                Mod_PlayerKernelDataProxy.GetInstance().DEX       = pkd.DEX;
                Mod_PlayerKernelDataProxy.GetInstance().ATKByItem = pkd.ATKByItem;
                Mod_PlayerKernelDataProxy.GetInstance().DEFByItem = pkd.DEFByItem;
                Mod_PlayerKernelDataProxy.GetInstance().DEXByItem = pkd.DEXByItem;
            }
            catch {
                Debug.LogError("读取玩家核心参数失败!");
            }
        }
コード例 #2
0
 /// <summary>
 /// 增加敏捷度
 /// /// </summary>
 /// <param name="addValue"></param>
 public void AddDEX(float addValue)
 {
     if (addValue > 0)
     {
         Mod_PlayerKernelDataProxy.GetInstance().AddDEX(addValue);
     }
 }
コード例 #3
0
 /// <summary>
 /// 减少当前的生命值(例如:被敌人攻击)
 /// </summary>
 /// <param name="attack"></param>
 public void SubCurHP(float attack)
 {
     if (attack > 0)
     {
         Mod_PlayerKernelDataProxy.GetInstance().SubCurHP(attack);
     }
 }
コード例 #4
0
 /// <summary>
 /// 更新敏捷度(例如:当装备新武器时)
 /// </summary>
 public void UpdateDEX(float defByItem = 0)
 {
     if (defByItem > 0)
     {
         Mod_PlayerKernelDataProxy.GetInstance().UpdateDEX(defByItem);
     }
 }
コード例 #5
0
 /// <summary>
 /// 减少当前的魔法值(例如:使用魔法)
 /// </summary>
 /// <param name="consumption"></param>
 /// <returns>魔法值是否足够</returns>
 public bool SubCurMP(float consumption)
 {
     if (consumption > 0)
     {
         return(Mod_PlayerKernelDataProxy.GetInstance().SubCurMP(consumption));
     }
     return(false);
 }
コード例 #6
0
 /// <summary>
 /// 更新攻击力(例如:当装备新武器时)
 /// </summary>
 public void UpdateATK(float atkByItem = 0)
 {
     //如果获得了新的武器物品,就更新武器攻击力
     if (atkByItem > 0)
     {
         Mod_PlayerKernelDataProxy.GetInstance().UpdateATK(atkByItem);
     }
 }
コード例 #7
0
ファイル: Test_ModelLayer.cs プロジェクト: postmeJ/ADF
        // Use this for initialization
        void Start()
        {
            Mod_PlayerKernelDataProxy   playerKernelDataObj   = new Mod_PlayerKernelDataProxy(100, 100, 10, 5, 50, 100, 100, 0, 0, 0);
            Mod_PlayerExtendedDataProxy playerExtendedDataObj = new Mod_PlayerExtendedDataProxy(0, 0, 1, 0, 0);


            //显示初始值
            Mod_PlayerKernelDataProxy.GetInstance().DisplayAllOriginalValues();             //调用显示所有初始数据方法
            Mod_PlayerExtendedDataProxy.GetInstance().DisplayAllOriginalValues();           //调用显示所有初始数据方法
        }
コード例 #8
0
        /// <summary>
        /// 有延迟的开始方法,必须要靠后执行
        /// </summary>
        /// <returns></returns>
        public IEnumerator Start()
        {
            yield return(new  WaitForSeconds(GlobalParameter.WAIT_FOR_SECONDS_ON_START));

            //显示初始值
            Mod_PlayerKernelDataProxy.GetInstance().DisplayAllOriginalValues();             //调用显示所有初始数据方法
            Mod_PlayerExtendedDataProxy.GetInstance().DisplayAllOriginalValues();           //调用显示所有初始数据方法

            //玩家的姓名处理
            if (string.IsNullOrEmpty(GlobalParaMgr.PlayerName))
            {
                Txt_PlayerName.text         = GlobalParaMgr.PlayerName;
                Txt_PlayerNameByDetail.text = GlobalParaMgr.PlayerName;
            }
        }
コード例 #9
0
        private void Start()
        {
            //另一种方式:使用XML解析的时候在加载场景时(或者游戏开始时)
            //进行一次性初始化

            //初始化模型层数据
            Mod_PlayerKernelDataProxy playerKernelDataObj = new Mod_PlayerKernelDataProxy(PlayerCurHp, PlayerCurMP, PlayerATK, PlayerDEF, PlayerDEX, PlayerMaxHP, PlayerMaxMP, PlayerATKByItem, PlayerDEFByItem, PlayerDEXByItem);

            Mod_PlayerExtendedDataProxy playerExtendedDataObj = new Mod_PlayerExtendedDataProxy(PlayerEXP, PlayerKillNum, PlayerLevel, PlayerGold, PlayerDiamond);

            //***这个写法有待改进***
            Mod_PlayerPackageDataProxy playerPackageData = new Mod_PlayerPackageDataProxy(IntWeapon_1_Count, IntShield_1_Count, IntBoot_1_Count, IntHPPotion_1_Count, IntMPPotion_1_Count);

            //开始MP恢复协程
            StartCoroutine("RecoverMP");
        }
コード例 #10
0
ファイル: SaveAndLoading.cs プロジェクト: postmeJ/ADF
        /// <summary>
        /// 公共方法:存储游戏进度
        /// </summary>
        /// <returns>是否保存成功</returns>
        public bool SaveGameProcess()
        {
            //得到各种数据
            //###这里为何要用代理类?
            _PlayerKernelDataProxy   = Mod_PlayerKernelDataProxy.GetInstance();
            _PlayerExtendedDataProxy = Mod_PlayerExtendedDataProxy.GetInstance();
            //_PlayerPackageDataProxy = Mod_PlayerPackageDataProxy.GetInstance();

            //存储游戏的全局参数
            SaveToXML_GlobalParameterData();
            //存储玩家的核心数据
            SaveToXML_GlobalParameterData();
            //存储玩家的扩展数据
            SaveToXML_PlayerExtendedData();
            //存储玩家的背包数据
            SaveToXML_PlayerPackageData();

            return(false);
        }
コード例 #11
0
 /// <summary>
 /// 得到敏捷度
 /// </summary>
 /// <returns></returns>
 public float GetDEX()
 {
     return(Mod_PlayerKernelDataProxy.GetInstance().GetDEX());
 }
コード例 #12
0
 /// <summary>
 /// 增加攻击力
 /// </summary>
 /// <param name="addValue"></param>
 public void AddATK(float addValue)
 {
     Mod_PlayerKernelDataProxy.GetInstance().AddATK(addValue);
 }
コード例 #13
0
 /// <summary>
 /// 得到最大的魔法数值
 /// </summary>
 /// <returns></returns>
 public float GetMaxMana()
 {
     return(Mod_PlayerKernelDataProxy.GetInstance().GetMaxMP());
 }
コード例 #14
0
ファイル: Test_ModelLayer.cs プロジェクト: postmeJ/ADF
 public void DeMP()
 {
     //调用模型层的方法
     Mod_PlayerKernelDataProxy.GetInstance().SubCurMP(60);
 }
コード例 #15
0
ファイル: Test_ModelLayer.cs プロジェクト: postmeJ/ADF
 public void InMP()
 {
     //调用模型层的方法
     Mod_PlayerKernelDataProxy.GetInstance().AddCurMP(60);
 }
コード例 #16
0
ファイル: Test_ModelLayer.cs プロジェクト: postmeJ/ADF
 public void InHP()
 {
     //调用模型层的方法
     // // Debug.Log("调用了InHP方法");
     Mod_PlayerKernelDataProxy.GetInstance().AddCurHP(30);
 }