// 执行队列中的一个 Item,这个必须是有效的,只有执行完后,才会删除者 Item public void getNextItem() { if (m_hurtList.Count() > 0) { foreach (var item in m_hurtList.list) { if (item.delayTime <= 0 && item.execState == EImmeHurtExecState.eNone) { m_curHurtItem = item; m_curHurtItem.startHurt(); return; } } } }
public void getWayPtList(MList <MazePtBase> ptList_, int pathIdx) { MazePtBase pt = null; MList <MazePtBase> list = null; if ((int)eRoomIndex.eStart == m_fixIdx || (int)eRoomIndex.eEnd == m_fixIdx) { list = m_ptListArr[(int)ePathIndex.eABC]; } else { list = m_ptListArr[pathIdx]; } if (list != null) { for (int idx = 0; idx < list.Count(); ++idx) { pt = list[idx].clone(); ptList_.Add(pt); pt.pos = UtilApi.convPtFromLocal2Local(this.selfGo.transform, Ctx.m_instance.m_maze.mazeData.sceneRootGo.transform, list[idx].pos); // 如果父节点没有缩放时是正确的,如果有缩放,就是错误的 //pt.pos = list[idx].pos + selfGo.transform.localPosition; } } }
// 移动结束回调 protected void onMoveEndHandle(NumAniSeqBase dispObj) { if (m_ptList.Count() > 0 && !m_bDiePt) // 说明还有 WayPoint 可以走 { MazePtBase pt = m_ptList[0]; m_ptList.RemoveAt(0); pt.moveToDestPos(m_mazePlayer); } else // 如果运行到终点位置 { m_ptList.Clear(); if (m_BDiedPlayEffect) { playDieAniAndSound(); } //bool bChangeScene = false; if (!m_bBombPt && !m_bDiePt) // 如果胜利 { //Ctx.m_instance.m_maze.mazeData.mazeScene.show(); //bChangeScene = true; if (Ctx.m_instance.m_maze.mazeData.curSceneIdx == (int)eSceneIndex.eSecond) { Ctx.m_instance.m_maze.mazeData.roomInfo.showLightWin(); Ctx.m_instance.m_maze.mazeData.mazePlayer.hide(); } else { Ctx.m_instance.m_maze.mazeData.mazeScene.showStar(); } } m_bBombPt = false; m_bDiePt = false; m_BDiedPlayEffect = false; Ctx.m_instance.m_uiMgr.loadAndShow(UIFormID.eUIMaze); UIMaze uiMaze = Ctx.m_instance.m_uiMgr.getForm(UIFormID.eUIMaze) as UIMaze; if (uiMaze != null) { uiMaze.toggleResetBtn(true); } string path = ""; path = Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathAudio], "Ground.mp3"); Ctx.m_instance.m_soundMgr.stop(path); path = Path.Combine(Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathAudio], "GameOver.mp3"); Ctx.m_instance.m_soundMgr.play(path, false); //if(bChangeScene) //{ // if (Ctx.m_instance.m_maze.mazeData.curSceneIdx == (int)eSceneIndex.eFirst) // { // Ctx.m_instance.m_maze.mazeData.mazeScene.loadSecondScene(); // } //} } }
protected void normalUpdateElem() { // 计算位置信息 m_posList.Clear(); UtilMath.newRectSplit(m_centerPos, m_elemNormalWidth, m_radius, m_yDelta, getValidElemCount(m_elemList), ref m_posList); // 更新元素信息 int posIdx = 0; for (int idx = 0; idx < m_elemList.Count(); ++idx) { if (m_elemList[idx].bValid) { m_elemList[idx].setNormalPos(m_posList[posIdx]); ++posIdx; } } }
public void removeEventHandle(Action <IDispatchObject> handle) { int idx = 0; for (idx = 0; idx < m_handleList.Count(); ++idx) { if (UtilApi.isAddressEqual(m_handleList[idx].m_handle, handle)) { break; } } if (idx < m_handleList.Count()) { delObject(m_handleList[idx]); } else { Ctx.m_instance.m_logSys.log("Event Handle not exist"); } }
public void resetInitState() { m_mazeRoomList.list.Sort(sortFixRoom); // 排序 for (int idx = 0; idx < m_mazeRoomList.Count(); ++idx) { m_mazeRoomList[idx].iTag = idx; m_mazeRoomList[idx].origPos = m_mazeRoomList[idx].initOrigPos; m_mazeRoomList[idx].mazeIOControl.disableDragTitle(); m_mazeRoomList[idx].mazeRoomTrackAniControl.goToDestPos(); m_mazeRoomList[idx].mazeIOControl.enableDragTitle(); } adjustInitState(); }