当然,我只用了一个while,觉得还比较简单就记录下来(while之外的代码看不明白就对了,因为那是我项目中封装的东西忽略就好。我只是来做笔记的)
/// <summary>
/// 判断是否升级
/// </summary>
double getExp;
void IsLevelUpShow()
{
getExp = double.Parse(tabel["ShuXingConfig"].Tabel.GetData(1303, "value")[0].ToString());
double nowLevel = double.Parse(tabel["ShuXingConfig"].Tabel.GetData(1302, "value")[0].ToString());
double levelExp = double.Parse(tabel["LevelConfig"].Tabel.GetData(nowLevel, "exp")[0].ToString());
if (getExp >= levelExp)
{
AppFacade.Instance.RegisterCommand(NotiConst.OpenPanel, typeof(PanelManagerCommand));
AppFacade.Instance.SendMessageCommand(NotiConst.OpenPanel, "LevelUpPanel");
AppFacade.Instance.RemoveMultiCommand(NotiConst.OpenPanel);
}
while (getExp >= levelExp)
{
//Debug.Log("获得经验----" + getExp);
getExp = getExp - levelExp;
//Debug.Log("获得经验----" + getExp);
nowLevel = nowLevel + 1;
//Debug.Log("当前等级----" + nowLevel);
levelExp = double.Parse(tabel["LevelConfig"].Tabel.GetData(nowLevel, "exp")[0].ToString());
//Debug.Log("等级需要经验------" + levelExp);
}
tabel["ShuXingConfig"].Tabel.WriteData(1303,"value", getExp);
tabel["ShuXingConfig"].Tabel.WriteData(1302, "value", nowLevel);
SetMainData();//刷新数据显示
}