/// <summary> /// 初始化战斗 /// </summary> public void InitFight(int cloneId) { if (cloneId < 1) { return; } mCloneId = cloneId; CloneSceneProperty cs = XmlManager.Instance.GetCloneSceneProperty(mCloneId); if (cs == null) { return; } // 预加载资源 PreLoadObject(cs); // 初始化怪物信息 InitMonster(cs.mCloneSceneMonsterInfoList); // 初始化战斗UI InitFightUI(); // 战斗开始倒计时 TimerManager.AddTimerCount("FightCountDown", mFightPrepareTime, FightCountDown); }
void PreLoadObject(CloneSceneProperty cs) { // 预缓存怪物预设 int count = cs.mCloneSceneMonsterInfoList.Count; for (int i = 0; i < count; ++i) { int monsterId = cs.mCloneSceneMonsterInfoList[i].mMonsterId; } // 预缓存主角技能特效预设 }
bool LoadCloneSceneProperty() { byte[] asset = ResourceManager.Instance.GetXml("CloneScene"); if (asset == null) { return(false); } TbXmlNode docNode = TbXml.Load(asset).docNode; if (docNode == null) { return(false); } List <TbXmlNode> xmlNodeList = docNode.GetNodes("CloneScene/Property"); int xmlNodeListLength = xmlNodeList.Count; if (xmlNodeListLength < 1) { return(false); } for (int i = 0; i < xmlNodeListLength; ++i) { TbXmlNode node = xmlNodeList[i] as TbXmlNode; CloneSceneProperty cs = new CloneSceneProperty(); int id = node.GetIntValue("CloneSceneId"); cs.mCloneSceneMonsterInfoList = new List <CloneSceneProperty.CloneSceneMonsterInfo>(); List <TbXmlNode> childNode = node.GetNodes("CloneSceneMonsterInfo"); for (int j = 0; j < childNode.Count; ++j) { TbXmlNode child = childNode[j] as TbXmlNode; CloneSceneProperty.CloneSceneMonsterInfo csm = new CloneSceneProperty.CloneSceneMonsterInfo(); csm.mMonsterId = child.GetIntValue("MonsterId"); csm.mMonsterPosition = UtilTools.FormatStringVector3(child.GetStringValue("MonsterPosition")); csm.mMonsterRotationY = child.GetFloatValue("MonsterRotationY"); csm.mMonsterScale = child.GetFloatValue("MonsterScale"); cs.mCloneSceneMonsterInfoList.Add(csm); } mCloneScenePropertyDic.Add(id, cs); } return(true); }