void Update() { runner -= Time.deltaTime; if (runner <= 0f) { state = (state + 1) % 4; if (state == 0) { // Fill middle row displayModel.Clear(); displayModel.FillRow(2); } else if (state == 1) { // One way to set data (dot by dot) displayModel.Clear(); for (int n = 0; n < 5; n++) { displayModel.SetDot(n, n, true); } } else if (state == 2) { // Fill center column displayModel.Clear(); displayModel.FillColumn(2); } else if (state == 3) { // Another way to set data (set all dots at once) displayModel.SetFullContent(new int[, ] { { 0, 0, 0, 0, 1 }, { 0, 0, 0, 1, 0 }, { 0, 0, 1, 0, 0 }, { 0, 1, 0, 0, 0 }, { 1, 0, 0, 0, 0 } }); } runner += 0.5f; } rotation = (rotation + Time.deltaTime * 0.2f) % Mathf.PI; this.transform.parent.transform.localRotation = Quaternion.Euler(new Vector3(0f, (1f + Mathf.Cos(rotation)) * 180f, 0f)); }
internal override float runStep(DisplayModel displayModel, float timeToConsume) { if (counter < 0) { displayModel.Clear(); displayModel.SetPartialContent(content, posX, posY); return(timeToConsume); } while (timeToConsume >= secondsPerDot && counter < push) { if (movement == AbsCmdPosition.Movements.MoveLeftAndStop || movement == AbsCmdPosition.Movements.MoveLeftAndPass) { if (counter < content.GetLength(1)) { displayModel.pushLeftAndSetRightColumn(content, counter, posY); } else { displayModel.PushLeft(); } } else if (movement == AbsCmdPosition.Movements.MoveRightAndStop || movement == AbsCmdPosition.Movements.MoveRightAndPass) { if (counter < content.GetLength(1)) { displayModel.pushRightAndSetLeftColumn(content, content.GetLength(1) - counter - 1, posY); } else { displayModel.PushRight(); } } else if (movement == AbsCmdPosition.Movements.MoveUpAndStop || movement == AbsCmdPosition.Movements.MoveUpAndPass) { if (counter < content.GetLength(0)) { displayModel.pushUpAndSetBottomRow(content, counter, posX); } else { displayModel.PushUp(); } } else if (movement == AbsCmdPosition.Movements.MoveDownAndStop || movement == AbsCmdPosition.Movements.MoveDownAndPass) { if (counter < content.GetLength(0)) { displayModel.pushDownAndSetTopRow(content, content.GetLength(0) - counter - 1, posX); } else { displayModel.PushDown(); } } timeToConsume -= secondsPerDot; counter++; } return(timeToConsume); }