Ejemplo n.º 1
0
    private int CurrentTodo()
    {
        float elapsedTime = Time.time - startedTime;
        //Debug.Log(cm.speed);
        int now = (int)Math.Truncate(elapsedTime / ((cm.speed * 0.001f) + waiting));

        if (now < 0)
        {
            return(-1);
        }
        float advanced = (elapsedTime - (now * ((cm.speed * 0.001f) + waiting)));

        //Debug.Log("now:" + now + ", adv:" + advanced);
        if (advanced > (cm.speed * 0.001f))
        {
            Debug.Log("waiting time");
            if (pandaStatus == PandaStatus.Moving)
            {
                pandaStatus = PandaStatus.EndMoving;
            }
            else
            {
                pandaStatus = PandaStatus.Waiting;
            }
        }
        else if (now != curPos)
        {
            Debug.Log("start time");
            pandaStatus = PandaStatus.StartMoving;
        }
        return(now);
    }
Ejemplo n.º 2
0
 private void ExchangePanda(int left, int right)
 {
     Debug.Log("ExchangePanda: " + (left - 1) + ", " + (right - 1));
     Debug.Log("left:" + posPanda[left - 1].name + " right:" + posPanda[right - 1].name);
     if (pandaStatus == PandaStatus.StartMoving)
     {
         pandaStatus = PandaStatus.Moving;
         MovePanda(left, (left < right ? Direction.Right : Direction.Left), 1);
         MovePanda(right, (left < right ? Direction.Left : Direction.Right), 1);
     }
     else if (pandaStatus == PandaStatus.Moving)
     {
         MovePanda(left, (left < right ? Direction.Right : Direction.Left), 0);
         MovePanda(right, (left < right ? Direction.Left : Direction.Right), 0);
     }
     else if (pandaStatus == PandaStatus.EndMoving)
     {
         MovePanda(left, (left < right ? Direction.Right : Direction.Left), 2);
         MovePanda(right, (left < right ? Direction.Left : Direction.Right), 2);
         pandaStatus = PandaStatus.Waiting;
         posPanda.Reverse(Math.Min(left - 1, right - 1), 2);
     }
 }