示例#1
0
 IEnumerator TurnAnim(DirectionalControl.Direction d)
 {
     if (d == DirectionalControl.Direction.Up)
     {
         FindObjectOfType <AudioManager>().Play("Up");
     }
     else if (d == DirectionalControl.Direction.Down)
     {
         FindObjectOfType <AudioManager>().Play("Down");
     }
     else if (d == DirectionalControl.Direction.Right)
     {
         FindObjectOfType <AudioManager>().Play("Right");
     }
     else if (d == DirectionalControl.Direction.Left)
     {
         FindObjectOfType <AudioManager>().Play("Left");
     }
     turning = true;
     if (Check180(m_direction, d))
     {
         anim.SetTrigger("180");
         yield return(new WaitForSeconds(0.9f));
     }
     else if (CheckCW90(m_direction, d))
     {
         anim.SetTrigger("Right");
         yield return(new WaitForSeconds(0.9f));
     }
     else if (CheckCCW90(m_direction, d))
     {
         anim.SetTrigger("Left");
         yield return(new WaitForSeconds(0.9f));
     }
     if (d == DirectionalControl.Direction.Up)
     {
         transform.rotation = Quaternion.Euler(new Vector3(transform.rotation.x, 0));
     }
     else if (d == DirectionalControl.Direction.Down)
     {
         transform.rotation = Quaternion.Euler(new Vector3(transform.rotation.x, 180));
     }
     else if (d == DirectionalControl.Direction.Right)
     {
         transform.rotation = Quaternion.Euler(new Vector3(transform.rotation.x, 90));
     }
     else if (d == DirectionalControl.Direction.Left)
     {
         transform.rotation = Quaternion.Euler(new Vector3(transform.rotation.x, -90));
     }
     turning = false;
     yield return(null);
 }
    // Update is called once per frame
    void Update()
    {
        for (int i = 0; i < status.Length; i++)
        {
            displayStatusApprox[i] = Mathf.Lerp(displayStatusApprox[i], status[i], Time.unscaledDeltaTime * 2);
            amounts[i].fontSize    = Mathf.RoundToInt(Mathf.Abs(status[i] - displayStatusApprox[i]) / 2) + startFontSize[i];
            displayStatus[i]       = Mathf.RoundToInt(displayStatusApprox[i]);
            float c = Mathf.Abs(status[i] - displayStatusApprox[i]) / 15;
            if (c > 1)
            {
                c = 1;
            }
            imageColor[i] = Color.Lerp(colors[i], Color.white, c);
            image[i].rectTransform.localScale   = new Vector2(Mathf.Abs(status[i] - displayStatusApprox[i]) / 8.5f + 1, Mathf.Abs(status[i] - displayStatusApprox[i]) / 8.5f + 1);
            amounts[i].rectTransform.localScale = new Vector2(Mathf.Abs(status[i] - displayStatusApprox[i]) / 8.5f + 1, Mathf.Abs(status[i] - displayStatusApprox[i]) / 8.5f + 1);
            redAmount[i]     = Mathf.Lerp(redAmount[i], 0, Time.deltaTime * 2);
            image[i].color   = Color.Lerp(imageColor[i], Color.red, redAmount[i]);
            amounts[i].color = Color.Lerp(imageColor[i], Color.red, redAmount[i]);
        }


        StartCoroutine(Move(selection, selectionPositions[index]));
        selection.sizeDelta = new Vector2(55, 55);
        DirectionalControl.Direction d = FindObjectOfType <Placement>().currentDirection;
        if (d == DirectionalControl.Direction.Left)
        {
            index = 0;
        }
        if (d == DirectionalControl.Direction.Up)
        {
            index = 1;
        }
        if (d == DirectionalControl.Direction.Down)
        {
            index = 2;
        }
        if (d == DirectionalControl.Direction.Right)
        {
            index = 3;
        }
        for (int i = 0; i < amounts.Length; i++)
        {
            amounts[i].text = Mathf.RoundToInt(displayStatus[i]).ToString();
        }
    }
示例#3
0
 // Start is called before the first frame update
 void Start()
 {
     FindObjectOfType <AudioManager>().Play("City");
     m_direction = DirectionalControl.Direction.Up;
     turning     = false;
     turnfull    = false;
     foreach (Rigidbody r in characterJoints)
     {
         r.isKinematic = true;
     }
     foreach (Collider c in characterColliders)
     {
         c.enabled = false;
     }
     anim.enabled = true;
     lives        = 3;
     startLives   = lives;
     disableTimer = 0;
 }
示例#4
0
 public int IntFromDirection(DirectionalControl.Direction d)
 {
     if (d == DirectionalControl.Direction.Left)
     {
         return(0);
     }
     else if (d == DirectionalControl.Direction.Up)
     {
         return(1);
     }
     else if (d == DirectionalControl.Direction.Down)
     {
         return(2);
     }
     else if (d == DirectionalControl.Direction.Right)
     {
         return(3);
     }
     else
     {
         return(0);
     }
 }
示例#5
0
 public void ChangeSelctionDirection(DirectionalControl.Direction d)
 {
     currentDirection = d;
 }
示例#6
0
 bool CheckCCW90(DirectionalControl.Direction d1, DirectionalControl.Direction d2)
 {
     return((d1 == DirectionalControl.Direction.Up && d2 == DirectionalControl.Direction.Left) || (d1 == DirectionalControl.Direction.Left && d2 == DirectionalControl.Direction.Down) || (d1 == DirectionalControl.Direction.Down && d2 == DirectionalControl.Direction.Right) || (d1 == DirectionalControl.Direction.Right && d2 == DirectionalControl.Direction.Up));
 }
示例#7
0
 public void TurnCar(DirectionalControl.Direction direction)
 {
     StartCoroutine(TurnAnim(direction));
     m_direction = direction;
 }