Beispiel #1
0
    private void FixedUpdate()
    {
        bool wasGrounded = m_Grounded;

        m_Grounded = false;

        // The player is grounded if a circlecast to the groundcheck position hits anything designated as ground
        // This can be done using layers instead but Sample Assets will not overwrite your project settings.
        Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
        for (int i = 0; i < colliders.Length; i++)
        {
            if (colliders[i].gameObject != gameObject)
            {
                if (!wasGrounded)
                {
                    SFXController.PlayClip(SFXClipName.JUMP);
                }
                m_Grounded = true;
            }
        }
        m_Anim.SetBool("Ground", m_Grounded);

        // Set the vertical animation
        m_Anim.SetFloat("vSpeed", m_Rigidbody2D.velocity.y);
    }
Beispiel #2
0
    public void Move(float move, bool crouch, bool jump)
    {
        if (m_Paused)
        {
            move   = 0.0f;
            crouch = false;
            jump   = false;
        }

        // If crouching, check to see if the character can stand up
        if (!crouch && m_Anim.GetBool("Crouch"))
        {
            // If the character has a ceiling preventing them from standing up, keep them crouching
            if (Physics2D.OverlapCircle(m_CeilingCheck.position, k_CeilingRadius, m_WhatIsGround))
            {
                crouch = true;
            }
        }

        // Set whether or not the character is crouching in the animator
        m_Anim.SetBool("Crouch", crouch);

        //only control the player if grounded or airControl is turned on
        if (m_Grounded || m_AirControl)
        {
            // Reduce the speed if crouching by the crouchSpeed multiplier
            move = (crouch ? move * m_CrouchSpeed : move);

            // The Speed animator parameter is set to the absolute value of the horizontal input.
            m_Anim.SetFloat("Speed", Mathf.Abs(move));

            // Move the character
            m_Rigidbody2D.velocity = new Vector2(move * m_MaxSpeed * speedFactor, m_Rigidbody2D.velocity.y);

            // If the input is moving the player right and the player is facing left...
            if (move > 0 && !m_FacingRight)
            {
                // ... flip the player.
                Flip();
            }
            // Otherwise if the input is moving the player left and the player is facing right...
            else if (move < 0 && m_FacingRight)
            {
                // ... flip the player.
                Flip();
            }
        }
        // If the player should jump...
        if (m_Grounded && jump && m_Anim.GetBool("Ground"))
        {
            // Add a vertical force to the player.
            m_Grounded = false;
            m_Anim.SetTrigger("Jump");
            m_Anim.SetBool("Ground", false);
            m_Rigidbody2D.AddForce(new Vector2(0f, m_JumpForce));
            SFXController.PlayClip(SFXClipName.JUMP);
        }
        m_Walking = m_Grounded && Math.Abs(move) > 0.05f;
    }
Beispiel #3
0
 void OnTriggerEnter2D(Collider2D collider2D)
 {
     if (collider2D.gameObject.tag == enemyTag)
     {
         SFXController.PlayClip(SFXClipName.SPLASH);
         Creature c = collider2D.gameObject.GetComponent <Creature>();
         c.Hit(damage, force * Vector2.up);
     }
 }
Beispiel #4
0
 void BlowUp(Vector2 position)
 {
     blownUp       = true;
     sprite.sprite = explosionSprite;
     trailSystem.Stop();
     blastSystem.Play();
     SFXController.PlayClip(SFXClipName.SHOOT);
     this.transform.position = position;
     Invoke("Kill", 0.5f);
 }
Beispiel #5
0
 void Fire()
 {
     if (shooting)
     {
         return;
     }
     shooting = true;
     m_Animator.SetBool("Shooting", true);
     beamObject.Shoot(new Vector2(m_Character.m_FacingRight ? 1.0f : -1.0f, 0.0f));
     SFXController.PlayClip(SFXClipName.SHOOT);
     beamObject = null;
     Invoke("ResetGun", 0.25f);
 }
    private void OnCollisionEnter(Collision other)
    {
        print("I collided with" + other.gameObject.name);

        health -= 1;
        SFXController.PlayClip(sfx_SoundEffect);

        PlayerPrefs.SetInt("Health", health);

        if (other.gameObject.tag == "Enemy")
        {
            other.gameObject.SendMessage("Damage", 3);
        }

        //other approach
        //other.gameObject.GetComponent<SecondCube>().Damage(3);
    }
Beispiel #7
0
 public void OnDying()
 {
     SFXController.PlayClip(SFXClipName.PLAYERHIT);
 }