Example #1
0
 // 执行队列中的一个 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;
             }
         }
     }
 }
Example #2
0
        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;
                }
            }
        }
Example #3
0
        // 移动结束回调
        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();
                //    }
                //}
            }
        }
Example #4
0
        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;
                }
            }
        }
Example #5
0
        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");
            }
        }
Example #6
0
        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();
        }