예제 #1
0
    // Update is called once per frame
    void Update()
    {
        groundBelow = DetectCollisions.DetectCollisionAtPosition(new Vector3
                                                                     (transform.position.x, transform.position.y - control.gridSize /*- 0.05f*/, transform.position.z));

        if (side == 1)
        {
            if (control.gamePhase != 1)
            {
                selected = false;
            }
            if (Input.GetKeyDown("1") && number == 1 && control.gamePhase == 1)
            {
                GameObject[] allside1Robots = GameObject.FindGameObjectsWithTag("Robo1");

                foreach (GameObject ConnectorCube in allside1Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }

                selected = true;
                cameraFollow.transform.position = transform.position;
            }
            if (Input.GetKeyDown("2") && number == 2 && control.gamePhase == 1)
            {
                GameObject[] allside1Robots = GameObject.FindGameObjectsWithTag("Robo1");

                foreach (GameObject ConnectorCube in allside1Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }
                selected = true;
                cameraFollow.transform.position = transform.position;
            }
            if (Input.GetKeyDown("3") && number == 3 && control.gamePhase == 1)
            {
                GameObject[] allside1Robots = GameObject.FindGameObjectsWithTag("Robo1");

                foreach (GameObject ConnectorCube in allside1Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }
                selected = true;
                cameraFollow.transform.position = transform.position;
            }
        }

        if (side == 2)
        {
            if (control.gamePhase != 2)
            {
                selected = false;
            }
            if (Input.GetKeyDown("1") && number == 1 && control.gamePhase == 2)
            {
                GameObject[] allside2Robots = GameObject.FindGameObjectsWithTag("Robo2");

                foreach (GameObject ConnectorCube in allside2Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }

                selected = true;
                cameraFollow.transform.position = transform.position;
            }
            if (Input.GetKeyDown("2") && number == 2 && control.gamePhase == 2)
            {
                GameObject[] allside2Robots = GameObject.FindGameObjectsWithTag("Robo2");

                foreach (GameObject ConnectorCube in allside2Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }
                selected = true;
                cameraFollow.transform.position = transform.position;
            }
            if (Input.GetKeyDown("3") && number == 3 && control.gamePhase == 2)
            {
                GameObject[] allside2Robots = GameObject.FindGameObjectsWithTag("Robo2");

                foreach (GameObject ConnectorCube in allside2Robots)
                {
                    ConnectorCube.GetComponent <CharacterAlpha>().selected = false;
                }
                selected = true;
                cameraFollow.transform.position = transform.position;
            }
        }

        if (performAction)
        {
            if (action == 1)
            {
                if (setDestination)
                {
                    startPos  = transform.position;
                    targetPos = new Vector2(transform.position.x
                                            + control.gridSize * transform.localScale.x, transform.position.y);
                    setDestination = false;
                }
                MoveOneStep(speed, transform.localScale.x);
            }
            if (action == 2)
            {
                if (setDestination)
                {
                    startPos  = transform.position;
                    targetPos = new Vector2(transform.position.x
                                            + control.gridSize * compX * 2 * transform.localScale.x, transform.position.y);
                    jumpHighPoint = new Vector2(transform.position.x
                                                + control.gridSize * compX * transform.localScale.x, transform.position.y +
                                                control.gridSize * compY);
                    setDestination = false;
                    jumpPhase      = 1;
                }
                Jump(speed, transform.localScale.x);
            }
            if (action == 3)
            {
                Turn180();
            }
        }
        if (action == 0 && groundBelow == false && !performFallDown)
        {
            RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x,
                                                             transform.position.y - control.gridSize - 0.05f), -transform.up);
            if (hit.collider != null)
            {
                targetPos = (new Vector2(hit.collider.transform.position.x,
                                         hit.collider.transform.position.y + control.gridSize * 1.5f));
            }
            else
            {
                targetPos = new Vector2(0, -1000f);
            }
            performFallDown = true;
        }

        if (action == 0 && groundBelow == true && !performFallDown && numberOfSteps > 0 && performAction)
        {
            action         = 1;
            setDestination = true;
            performAction  = true;
        }

        if (action == 4)
        {
            if (setDestination && shooting == 0)
            {
                startPos  = transform.position;
                targetPos = new Vector2(transform.position.x
                                        + control.gridSize * shootingRange * transform.localScale.x, transform.position.y);
                setDestination = false;
                shooting       = 1;
            }
            Shoot(speed, transform.localScale.x);
        }
        if (action == 5)
        {
            Crouch();
        }

        if (performFallDown == true)
        {
            FallDown(speed * 3);
        }
    }
예제 #2
0
    // Update is called once per frame
    void Update()
    {
        groundBelow = DetectCollisions.DetectCollisionAtPosition(new Vector3
                                                                     (transform.position.x, transform.position.y - control.gridSize /*- 0.05f*/, transform.position.z));

        if (performAction)
        {
            if (action == 1)
            {
                if (setDestination)
                {
                    startPos  = transform.position;
                    targetPos = new Vector2(transform.position.x
                                            + control.gridSize * transform.localScale.x, transform.position.y);
                    setDestination = false;
                }
                MoveOneStep(speed, transform.localScale.x);
            }
            if (action == 2)
            {
                if (setDestination)
                {
                    startPos  = transform.position;
                    targetPos = new Vector2(transform.position.x
                                            + control.gridSize * compX * 2 * transform.localScale.x, transform.position.y);
                    jumpHighPoint = new Vector2(transform.position.x
                                                + control.gridSize * compX * transform.localScale.x, transform.position.y +
                                                control.gridSize * compY);
                    setDestination = false;
                    jumpPhase      = 1;
                }
                Jump(speed, transform.localScale.x);
            }
            if (action == 3)
            {
                Turn180();
            }
        }
        if (action == 0 && groundBelow == false && !performFallDown)
        {
            RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x,
                                                             transform.position.y - control.gridSize - 0.05f), -transform.up);
            if (hit.collider != null)
            {
                targetPos = (new Vector2(hit.collider.transform.position.x,
                                         hit.collider.transform.position.y + control.gridSize * 1.5f));
            }
            else
            {
                targetPos = new Vector2(0, -1000f);
            }
            performFallDown = true;
        }
        if (action == 4)
        {
            if (setDestination && shooting == 0)
            {
                startPos  = transform.position;
                targetPos = new Vector2(transform.position.x
                                        + control.gridSize * shootingRange * transform.localScale.x, transform.position.y);
                setDestination = false;
                shooting       = 1;
            }
            Shoot(speed, transform.localScale.x);
        }

        if (performFallDown == true)
        {
            FallDown(speed * 3);
        }
    }