Added sounds, fixed some bugs
added a sound for the tambourine, spider web, and background music.\n- finally fixed the web animation\n- added Sir Jacques to the web animation\n- changed the way the fire point tracks the grapple
This commit is contained in:
		@@ -62,12 +62,25 @@ public class PlayerBehavior : MonoBehaviour
 | 
			
		||||
        _hInput = value.Get<Vector2>().x;
 | 
			
		||||
        if (_hInput < 0)
 | 
			
		||||
        {
 | 
			
		||||
            // if (forward != -1) { // if character hasnt already flipped 
 | 
			
		||||
            //     FlipScale();
 | 
			
		||||
            // }
 | 
			
		||||
            forward = -1;
 | 
			
		||||
        }
 | 
			
		||||
        else if (_hInput > 0)
 | 
			
		||||
        {
 | 
			
		||||
            // if (forward != 1) { // if character hasnt already flipped 
 | 
			
		||||
            //     FlipScale();
 | 
			
		||||
            // }
 | 
			
		||||
            forward = 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void FlipScale() { // DOENST WORK RIGHT
 | 
			
		||||
        Vector3 currentScale = this.gameObject.transform.localScale;
 | 
			
		||||
        currentScale.x *= -1;
 | 
			
		||||
        this.gameObject.transform.localScale = currentScale;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void ThrowTambourine() {
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ public class TambourineBehavior : MonoBehaviour {
 | 
			
		||||
    private GameObject player;
 | 
			
		||||
 | 
			
		||||
    public bool pinned = false;
 | 
			
		||||
    public AudioSource tambourineHitSound;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    void Awake() {
 | 
			
		||||
@@ -40,9 +41,10 @@ public class TambourineBehavior : MonoBehaviour {
 | 
			
		||||
            // this.gameObject.transform.position = col.transform.position;
 | 
			
		||||
            timeLerped += Time.deltaTime;
 | 
			
		||||
            this.gameObject.transform.position = Vector2.Lerp(this.gameObject.transform.position, collidedObject.transform.position, timeLerped/timeToLerp);
 | 
			
		||||
            if (this.gameObject.transform.position.x == collidedObject.transform.position.x && this.gameObject.transform.position.y == collidedObject.transform.position.y) {
 | 
			
		||||
            if (this.gameObject.transform.position.x == collidedObject.transform.position.x && this.gameObject.transform.position.y == collidedObject.transform.position.y && !pinned) {
 | 
			
		||||
                animator.SetBool("pinned", true);
 | 
			
		||||
                pinned = true;
 | 
			
		||||
                tambourineHitSound.Play();
 | 
			
		||||
            } else {
 | 
			
		||||
                // print("pinned, but not same position: " + this.gameObject.transform.position + " / " + collidedObject.transform.position);
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -51,13 +51,16 @@ public class Tutorial_GrapplingGun : MonoBehaviour {
 | 
			
		||||
 | 
			
		||||
    void Update() {
 | 
			
		||||
        
 | 
			
		||||
        Vector2 mousePos = m_camera.ScreenToWorldPoint(Mouse.current.position.ReadValue());
 | 
			
		||||
        RotateGun(mousePos, true);
 | 
			
		||||
        // Vector2 mousePos = m_camera.ScreenToWorldPoint(Mouse.current.position.ReadValue());
 | 
			
		||||
        // RotateGun(mousePos, true);
 | 
			
		||||
 | 
			
		||||
        if (grappleRope.isGrappling && !inDistanceRange && Vector2.Distance(grapplePoint, new Vector2(m_rigidBody2D.transform.position.x, m_rigidBody2D.transform.position.y)) < targetDistance) {
 | 
			
		||||
            // print(Vector2.Distance(grapplePoint, new Vector2(m_rigidBody2D.transform.position.x, m_rigidBody2D.transform.position.y)) + ", target: " + targetDistance);
 | 
			
		||||
            inDistanceRange = true;
 | 
			
		||||
        }
 | 
			
		||||
        if (grappleRope.isGrappling) {
 | 
			
		||||
            RotateGun(grapplePoint, true);
 | 
			
		||||
        }
 | 
			
		||||
        if (inDistanceRange) {
 | 
			
		||||
            m_distanceJoint2D.enabled = true;
 | 
			
		||||
        }
 | 
			
		||||
@@ -76,6 +79,7 @@ public class Tutorial_GrapplingGun : MonoBehaviour {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void Grapple() {
 | 
			
		||||
        grappleDistanceVector = grapplePoint - (Vector2)gunPivot.position;
 | 
			
		||||
        // print("grapple");
 | 
			
		||||
        m_springJoint2D.autoConfigureDistance = false;
 | 
			
		||||
        m_distanceJoint2D.autoConfigureDistance = false;
 | 
			
		||||
@@ -89,6 +93,7 @@ public class Tutorial_GrapplingGun : MonoBehaviour {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void GrappleToTambourine(GameObject tambourine) {
 | 
			
		||||
        grappleDistanceVector = grapplePoint - (Vector2)gunPivot.position;
 | 
			
		||||
        grappleRope.enabled = true;
 | 
			
		||||
 | 
			
		||||
        grapplePoint = tambourine.transform.position;
 | 
			
		||||
@@ -106,6 +111,7 @@ public class Tutorial_GrapplingGun : MonoBehaviour {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void GrappleToSurface(Vector2 surfacePoint) {
 | 
			
		||||
        grappleDistanceVector = grapplePoint - (Vector2)gunPivot.position;
 | 
			
		||||
        grappleRope.enabled = true;
 | 
			
		||||
 | 
			
		||||
        grapplePoint = surfacePoint;
 | 
			
		||||
@@ -128,6 +134,7 @@ public class Tutorial_GrapplingGun : MonoBehaviour {
 | 
			
		||||
        m_distanceJoint2D.enabled = false;
 | 
			
		||||
        inDistanceRange = false;
 | 
			
		||||
        m_rigidBody2D.gravityScale = 1;
 | 
			
		||||
        gunPivot.rotation = Quaternion.AngleAxis(70, Vector3.forward);
 | 
			
		||||
        // print("disabled");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,10 @@ public class Tutorial_GrapplingRope : MonoBehaviour {
 | 
			
		||||
 | 
			
		||||
    [HideInInspector] public bool isGrappling = true;
 | 
			
		||||
    bool straightLine = false;
 | 
			
		||||
    
 | 
			
		||||
    [Header("Spider")]
 | 
			
		||||
    bool hasPlayedThwip = false;
 | 
			
		||||
    [SerializeField] GameObject sirJacques;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private void OnEnable() {
 | 
			
		||||
@@ -37,15 +41,19 @@ public class Tutorial_GrapplingRope : MonoBehaviour {
 | 
			
		||||
        LinePointsToFirePoint();
 | 
			
		||||
 | 
			
		||||
        m_lineRenderer.enabled = true;
 | 
			
		||||
        sirJacques.SetActive(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void OnDisable() {
 | 
			
		||||
        // print("on disabled called");
 | 
			
		||||
        m_lineRenderer.enabled = false;
 | 
			
		||||
        isGrappling = false;
 | 
			
		||||
        hasPlayedThwip = false;
 | 
			
		||||
        sirJacques.SetActive(false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void LinePointsToFirePoint() {
 | 
			
		||||
        sirJacques.transform.position = grapplingGun.firePoint.position;
 | 
			
		||||
        for (int i = 0; i < precision; i++) {
 | 
			
		||||
            m_lineRenderer.SetPosition(i, grapplingGun.firePoint.position);
 | 
			
		||||
        }
 | 
			
		||||
@@ -53,6 +61,10 @@ public class Tutorial_GrapplingRope : MonoBehaviour {
 | 
			
		||||
 | 
			
		||||
    void Update() {
 | 
			
		||||
        moveTime += Time.deltaTime;
 | 
			
		||||
        if (!hasPlayedThwip) {
 | 
			
		||||
            this.gameObject.GetComponent<AudioSource>().Play();
 | 
			
		||||
            hasPlayedThwip = true;
 | 
			
		||||
        }
 | 
			
		||||
        DrawRope();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -60,10 +72,11 @@ public class Tutorial_GrapplingRope : MonoBehaviour {
 | 
			
		||||
        // print("drawing");
 | 
			
		||||
        // print("isGrappling: " + isGrappling);
 | 
			
		||||
        if (!straightLine) {
 | 
			
		||||
            float roundedLinePos = Mathf.Round(m_lineRenderer.GetPosition(precision - 1).x * 10.0f) * .01f;
 | 
			
		||||
            float roundedGrapplePos = Mathf.Round(m_lineRenderer.GetPosition(precision - 1).x * 10.0f) * .01f;
 | 
			
		||||
            // print(roundedLinePos + " / " + roundedGrapplePos);
 | 
			
		||||
            if (roundedLinePos == roundedGrapplePos) {
 | 
			
		||||
            // float roundedLinePos = Mathf.Round(m_lineRenderer.GetPosition(precision - 1).x * 100.0f) * .01f;
 | 
			
		||||
            // float roundedGrapplePos = Mathf.Round(m_lineRenderer.GetPosition(precision - 1).x * 100.0f) * .01f;
 | 
			
		||||
            // // print(roundedLinePos + " / " + roundedGrapplePos);
 | 
			
		||||
            // if (roundedLinePos == roundedGrapplePos) {
 | 
			
		||||
            if (m_lineRenderer.GetPosition(precision - 1).x == grapplingGun.grapplePoint.x) {
 | 
			
		||||
                straightLine = true;
 | 
			
		||||
            } else {
 | 
			
		||||
                DrawRopeWaves();
 | 
			
		||||
@@ -87,18 +100,20 @@ public class Tutorial_GrapplingRope : MonoBehaviour {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void DrawRopeWaves() {
 | 
			
		||||
        print(moveTime);
 | 
			
		||||
        // print(moveTime);
 | 
			
		||||
        for (int i = 0; i < precision; i++) {
 | 
			
		||||
            float delta = (float)i / ((float)precision - 1f);
 | 
			
		||||
            Vector2 offset = Vector2.Perpendicular(grapplingGun.grappleDistanceVector).normalized * ropeAnimationCurve.Evaluate(delta) * waveSize;
 | 
			
		||||
            Vector2 targetPosition = Vector2.Lerp(grapplingGun.firePoint.position, grapplingGun.grapplePoint, delta) + offset;
 | 
			
		||||
            Vector2 currentPosition = Vector2.Lerp(grapplingGun.firePoint.position, targetPosition, ropeProgressionCurve.Evaluate(moveTime) * ropeProgressionSpeed);
 | 
			
		||||
 | 
			
		||||
            sirJacques.transform.position = currentPosition;
 | 
			
		||||
            m_lineRenderer.SetPosition(i, currentPosition);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void DrawRopeNoWaves() {
 | 
			
		||||
        sirJacques.transform.position = grapplingGun.grapplePoint;
 | 
			
		||||
        m_lineRenderer.SetPosition(0, grapplingGun.firePoint.position);
 | 
			
		||||
        m_lineRenderer.SetPosition(1, grapplingGun.grapplePoint);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user