示例#1
0
        private void nextTest()
        {
            switch (nowStatus)
            {
            case NowStatus.NoEngNoChi:
                EngGrid.Visibility = Visibility.Visible;
                nowStatus          = NowStatus.NoChi;
                break;

            case NowStatus.NoChi:
                ChiLB.Visibility = Visibility.Visible;
                nowStatus        = NowStatus.ShowAll;
                break;

            case NowStatus.ShowAll:
                if (nowIndex == sentences.Count - 1)
                {
                    return;
                }
                nowIndex++;
                setTest();
                nowStatus = NowStatus.NoEngNoChi;
                break;
            }
        }
示例#2
0
 // 开始执行操作列表
 public void DoOperateList()
 {
     if (NowElement != null && NowElement.CanOperate)
     {
         nowOperate = -1;
         nowStatus  = NowStatus.Push;
     }
 }
示例#3
0
    // 按照操作类型执行
    private void DoSth(Operate op)
    {
        Transform t = op.Object;

        if (t == null)
        {
            t = nowElement.transform;
        }

        switch (op.Type)
        {
        case OperateType.Translate:
            t.localPosition += (op.EndPosition - op.StartPosition) / op.Time * Speed * Time.deltaTime;
            break;

        case OperateType.Rotate:        // 要把局部坐标和向量转化为世界坐标
            t.RotateAround(op.pointSpace == Space.Local?t.TransformPoint(op.Point): op.Point,
                           op.axisSpace == Space.Local ? t.TransformDirection(op.Axis): op.Axis,
                           (op.Angle) / op.Time * Speed * Time.deltaTime);
            break;

        case OperateType.TranslateAndRotate:
            t.localPosition += (op.EndPosition - op.StartPosition) / op.Time * Speed * Time.deltaTime;
            t.RotateAround(op.pointSpace == Space.Local ? t.TransformPoint(op.Point) : op.Point,
                           op.axisSpace == Space.Local ? t.TransformDirection(op.Axis) : op.Axis,
                           (op.Angle) / op.Time * Speed * Time.deltaTime);
            break;

        default: break;
        }

        timer += Time.deltaTime * Speed;
        // 操作结束
        if (timer >= op.Time)
        {
            timer     = 0;
            nowStatus = NowStatus.Push;
        }
    }
示例#4
0
 void Update()
 {
     if (nowStatus == NowStatus.Push)
     {
         // 设定好当前要进行的操作并开始进行
         nowOperate++;
         if (nowOperate < NowElement.List.list.Count)
         {
             nowStatus = NowStatus.Do;
         }
         else
         {
             // 操作结束,回调
             nowStatus  = NowStatus.None;
             nowOperate = -1;
             NowElement.Finish();
             cameraControl.BackToNormal();
         }
     }
     else if (nowStatus == NowStatus.Do)
     {
         DoSth(NowElement.List.list[nowOperate]);
     }
 }
示例#5
0
        private void backTest()
        {
            switch (nowStatus)
            {
            case NowStatus.NoEngNoChi:
                if (nowIndex == 0)
                {
                    return;
                }
                nowIndex--;
                setTest();
                break;

            case NowStatus.NoChi:
                EngGrid.Visibility = Visibility.Hidden;
                nowStatus          = NowStatus.NoEngNoChi;
                break;

            case NowStatus.ShowAll:
                ChiLB.Visibility = Visibility.Hidden;
                nowStatus        = NowStatus.NoChi;
                break;
            }
        }