Ejemplo n.º 1
0
    void OnCollisionEnter2D(Collision2D other)
    {
        if (irritated)
        {
            if (other.gameObject.tag == "CameraGuy" || other.gameObject.tag == "SoundGuy" || other.gameObject.tag == "MicGuy")
            {
                gameManager.GameOver();
            }
        }

        if (other.gameObject.tag == "Scenario")
        {
            if (directionToFlee == DirectionToFlee.Up)
            {
                directionToFlee = DirectionToFlee.Down;
            }
            else if (directionToFlee == DirectionToFlee.Down)
            {
                directionToFlee = DirectionToFlee.Up;
            }
            else if (directionToFlee == DirectionToFlee.Left)
            {
                directionToFlee = DirectionToFlee.Right;
            }
            else if (directionToFlee == DirectionToFlee.Right)
            {
                directionToFlee = DirectionToFlee.Left;
            }
        }
    }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     elapsedTime       = 0;
     justFled          = false;
     continueBehaviour = false;
     animator          = GetComponent <Animator>();
     gameManager       = GameObject.Find("GameManager").GetComponent <GameManager>();
     directionToFlee   = DirectionToFlee.None;
 }
Ejemplo n.º 3
0
    void DefineDirectionToFlee()
    {
        cameraGuy = GameObject.Find("Camera Guy");
        soundGuy  = GameObject.Find("Sound Guy");
        micGuy    = GameObject.Find("Mic Guy");

        float distance1 = Vector3.Distance(cameraGuy.transform.position, transform.position);
        float distance2 = Vector3.Distance(soundGuy.transform.position, transform.position);
        float distance3 = Vector3.Distance(micGuy.transform.position, transform.position);

        float distanceAfterMovement1Up = Vector3.Distance(cameraGuy.transform.position, transform.position + Vector3.up * speed * Time.deltaTime);
        float distanceAfterMovement2Up = Vector3.Distance(soundGuy.transform.position, transform.position + Vector3.up * speed * Time.deltaTime);
        float distanceAfterMovement3Up = Vector3.Distance(micGuy.transform.position, transform.position + Vector3.up * speed * Time.deltaTime);

        float distanceAfterMovement1Right = Vector3.Distance(cameraGuy.transform.position, transform.position + Vector3.right * speed * Time.deltaTime);
        float distanceAfterMovement2Right = Vector3.Distance(soundGuy.transform.position, transform.position + Vector3.right * speed * Time.deltaTime);
        float distanceAfterMovement3Right = Vector3.Distance(micGuy.transform.position, transform.position + Vector3.right * speed * Time.deltaTime);

        float distanceAfterMovement1Left = Vector3.Distance(cameraGuy.transform.position, transform.position + Vector3.left * speed * Time.deltaTime);
        float distanceAfterMovement2Left = Vector3.Distance(soundGuy.transform.position, transform.position + Vector3.left * speed * Time.deltaTime);
        float distanceAfterMovement3Left = Vector3.Distance(micGuy.transform.position, transform.position + Vector3.left * speed * Time.deltaTime);

        float distanceAfterMovement1Down = Vector3.Distance(cameraGuy.transform.position, transform.position + Vector3.down * speed * Time.deltaTime);
        float distanceAfterMovement2Down = Vector3.Distance(soundGuy.transform.position, transform.position + Vector3.down * speed * Time.deltaTime);
        float distanceAfterMovement3Down = Vector3.Distance(micGuy.transform.position, transform.position + Vector3.down * speed * Time.deltaTime);

        if (distanceAfterMovement1Up > distance1 && distanceAfterMovement2Up > distance2 && distanceAfterMovement3Up > distance3)          //Can go up
        {
            directionToFlee = DirectionToFlee.Up;
        }
        else if (distanceAfterMovement1Right > distance1 && distanceAfterMovement2Right > distance2 && distanceAfterMovement3Right > distance3)
        {
            directionToFlee = DirectionToFlee.Right;
        }
        else if (distanceAfterMovement1Left > distance1 && distanceAfterMovement2Left > distance2 && distanceAfterMovement3Left > distance3)
        {
            directionToFlee = DirectionToFlee.Left;
        }
        else if (distanceAfterMovement1Down > distance1 && distanceAfterMovement2Down > distance2 && distanceAfterMovement3Down > distance3)
        {
            directionToFlee = DirectionToFlee.Down;
        }
        else
        {
            int random = Random.Range(0, 3);

            if (random == 0)
            {
                directionToFlee = DirectionToFlee.Up;
            }
            else if (random == 1)
            {
                directionToFlee = DirectionToFlee.Right;
            }
            else if (random == 2)
            {
                directionToFlee = DirectionToFlee.Left;
            }
            else
            {
                directionToFlee = DirectionToFlee.Down;
            }
        }

        if (directionToFlee == DirectionToFlee.Left)
        {
            GetComponent <SpriteRenderer>().flipX = true;
        }
        else if (directionToFlee == DirectionToFlee.Right)
        {
            GetComponent <SpriteRenderer>().flipX = false;
        }
    }