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); }
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); } }