Exemple #1
0
 void Move()
 {
     if (movementFlag == 1)
     {
         walkAndJump.Manuever(Direction.Left);
     }
     else if (movementFlag == 2)
     {
         walkAndJump.Manuever(Direction.Right);
     }
     else
     {
         walkAndJump.Manuever(Direction.None);
     }
 }
Exemple #2
0
    private void Update()
    {
        if (organism.alive)
        {
            switch (currentState)
            {
            case State.Walking:
                walkAndJump.Manuever(InterpretKey());
                break;

            case State.Aiming:
                walkAndJump.Manuever(Direction.None);
                //mousePosition = Input.mousePosition;

                //mousePosition = cam.ScreenToWorldPoint(mousePosition);

                //Ray r = new Ray();
                //r.origin = mousePosition;
                //r.direction = cam.transform.forward;

                //    mousePosition = r.GetPoint(-r.origin.z / Mathf.Cos(Vector3.Angle(r.direction, Vector3.forward * Mathf.PI / 180)));

                var mousePos = Input.mousePosition;
                mousePos.z    = -cam.transform.position.z;
                mousePosition = (cam.ScreenToWorldPoint(mousePos));

                mousePosition = new Vector3(Mathf.Round(mousePosition.x), Mathf.Round(mousePosition.y), 0);

                transform.LookAt(new Vector3(mousePosition.x, transform.position.y, 0));

                aim.GetComponent <RectTransform>().position = cam.WorldToScreenPoint(mousePosition);

                RaycastHit[] hits = Physics.SphereCastAll(wand.transform.position, 0.2f, mousePosition - wand.transform.position, Vector3.Distance(wand.transform.position, mousePosition), 257, QueryTriggerInteraction.Collide);
                //Debug.DrawLine(wand.transform.position, mousePosition);

                bool blocked = false;
                for (int i = 0; i < hits.Length; i++)
                {
                    Entity e = hits[i].collider.GetComponent <Entity>();
                    if (e != null && e.blockProjectiles == true)
                    {
                        blocked = true;
                        //Debug.Log(e.name);
                        break;
                    }
                }

                if (blocked)
                {
                    mouse.SetActive(false);
                    X.SetActive(true);
                }

                else
                {
                    mouse.SetActive(true);
                    X.SetActive(false);
                }

                if (Input.GetKeyDown(KeyCode.Mouse0) && !EventSystem.current.IsPointerOverGameObject())
                {
                    StartCoroutine(Cast());
                    SetState(State.Casting);
                }

                if (Input.GetKeyDown(KeyCode.Mouse1) && !EventSystem.current.IsPointerOverGameObject())
                {
                    SetState(State.Walking);
                }
                break;

            case State.Casting:
                walkAndJump.Manuever(Direction.None);
                break;

            case State.Cleared:
                StartCoroutine(Clear());
                break;
            }
        }
        else
        {
            walkAndJump.Manuever(Direction.None);
            if (manager != null)
            {
                manager.SetState(GameStateManager.UIState.GameOver);
            }
        }
    }