Ejemplo n.º 1
0
    // ====================================================
    void Squash(PhysicsController other)
    {
        PlayerController player = other.GetComponent <PlayerController>();

        if (player != null)
        {
            player.InstaDeath();
            return;
        }
        PatrollingEnemy patroller = other.GetComponent <PatrollingEnemy>();

        if (patroller != null)
        {
            patroller.InstaDeath();
            return;
        }
        Destroy(other.gameObject);
    }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (m_reference.Velocity != Vector2.zero)
        {
            Vector3 temp = m_reference.Velocity;

            temp.x *= xDampener;
            temp.y *= yDampener;

            m_reference.GetComponent <PhysicsController>().Velocity = temp;
        }
    }
Ejemplo n.º 3
0
    // Start is called before the first frame update
    void Start()
    {
        _squish = GetComponent <Squishy3D>();
        _rends  = _model.GetComponentsInChildren <Renderer>();
        _player = _parentPhysics.GetComponent <PlayerScript>();

        _default = _rends[0].material.shader;
        _white   = Shader.Find("GUI/Text Shader");

        for (int i = 0; i < _rends.Length; i++)
        {
            _startCol.Add(new List <Color>());
            for (int j = 0; j < _rends[i].materials.Length; j++)
            {
                _startCol[i].Add(_rends[i].materials[j].color);
            }
        }
    }
Ejemplo n.º 4
0
    // ====================================================
    void LateUpdate()
    {
        //animator.Update( MinigameTimeManager.instance.deltaTime );

        Vector2 deltaPos = myTransform.position - lastPosition;

        platformPhysicsController.Move(deltaPos, lastPosition);

        foreach (CollisionInfo collisionInfo in platformPhysicsController.currentCollisions.Values)
        {
            PhysicsController other = collisionInfo.collider.GetComponent <PhysicsController>();
            if (other == null || other is PlatformPhysicsController)
            {
                continue;
            }
            Vector2 deltaMovement = collisionInfo.deltaMovement;

            PlayerController player = other.GetComponent <PlayerController>();
            if (player != null)
            {
                if (collisionInfo.forcedMovementDirection == Vector2.right && !player.isGrabbingToWall)
                {
                    deltaMovement.y = 0;
                }

                if (collisionInfo.forcedMovementDirection == -Vector2.right && !player.isGrabbingToWall)
                {
                    deltaMovement.y = 0;
                }
            }

            if (collisionInfo.forcedMovementDirection == -Vector2.up)
            {
                deltaMovement.y = deltaMovement.y > 0 ? 0 : deltaMovement.y;
            }
            Vector2 deltaResult = other.Move(deltaMovement, false);

            if (collisionInfo.forcedMovementDirection == Vector2.up)
            {
                other.isGrounded = true;
                if (deltaResult.y < deltaMovement.y)
                {
                    Squash(other);
                }
            }
            else if (collisionInfo.forcedMovementDirection == -Vector2.up)
            {
                other.didHitCeiling = true;
                if (deltaResult.y > deltaMovement.y)
                {
                    Squash(other);
                }
            }
            else if (collisionInfo.forcedMovementDirection == Vector2.right)
            {
                other.didHitLeft = true;
                if (deltaResult.x < deltaMovement.x)
                {
                    Squash(other);
                }
            }
            else if (collisionInfo.forcedMovementDirection == -Vector2.right)
            {
                other.didHitRight = true;
                if (deltaResult.x > deltaMovement.x)
                {
                    Squash(other);
                }
            }
        }


        lastPosition = myTransform.position;
    }