void Start() { // assign the rigidbody component rb = GetComponent <Rigidbody2D>(); // assign Wall layer to variable walls = LayerMask.NameToLayer("Walls"); anchorLayer = LayerMask.NameToLayer("Anchors"); buttons = LayerMask.NameToLayer("Buttons"); // make sure that raycasts don't detect the colliders that they start in Physics2D.queriesStartInColliders = false; stamina = maxStamina; //rend = GetComponentInChildren<SpriteRenderer>(); leftTentacle.anchorPos = null; rightTentacle.anchorPos = null; switchTentacles = false; slingshot = Sling.None; bc = GetComponent <BoxCollider2D>(); anim = GetComponent <Animator>(); movement = Movement.Ground; groundingLR = Grounding.None; anchorGrip = AnchorGrip.None; rendTransform = rend.transform; increment[0] = Random.Range(0f, 10f); increment[1] = Random.Range(0f, 10f); saveController.LoadGame(); rend.flipX = faceDir == -1 ? true : false; Cursor.visible = false; endgame = false; }
private void FixedUpdate() { // launch if (launch && !delayLaunch) { // clamp the magnitude of the launch rb.AddForce(Vector2.ClampMagnitude(launchDir.right * SpringCalc2(), 7000f)); //print((1/SpringCalc2()) * 1200f + " force"); // no longer launching launch = false; LaunchDelay((1 / SpringCalc2()) * 1200f); } float speedMult = 100f; if (movement == Movement.Airborne || movement == Movement.Launch) { speedMult = 10f; } rb.AddForce(new Vector2(hor * speedMult, vert * speedMult)); if (movement == Movement.Ground || movement == Movement.Wallclimb) { if (rb.velocity.magnitude >= 10f) { rb.velocity = Vector2.ClampMagnitude(rb.velocity, 10f); } } if (leftTentacle.state == Tentacles.Anchored && rightTentacle.state == Tentacles.Anchored) { anchorGrip = AnchorGrip.Both; } else if (leftTentacle.state == Tentacles.Anchored || rightTentacle.state == Tentacles.Anchored) { anchorGrip = AnchorGrip.Single; } else { anchorGrip = AnchorGrip.None; } //if(anchorGrip == AnchorGrip.Single) //{ // var point = leftTentacle.anchorPos != null ? leftTentacle.anchorPos.position : rightTentacle.anchorPos.position; // if(Vector2.Distance(point, transform.position) > tentacleRange) // { // var angle = -Vector2.Angle(Vector2.right, transform.position - point); // if (angle >= -180 || angle <= 0) // { // print("Edge of circle"); // EnableGravity(false); // rb.velocity = Vector2.zero; // print(angle); // angle = Mathf.Clamp(angle, -180f, 0f); // var temp = 5 * (left + right) + angle; // var edge = CirclePoint(point, tentacleRange, temp); // transform.position = edge; // } // } //} #region Stickiness if (gripping) { stamina--; } #endregion if (Random.Range(0, 4) == 0 && (stamina < 45 && stamina != 0)) { var temp = Instantiate(teardrop, transform.position, Quaternion.identity, transform); temp.transform.position += new Vector3(Random.Range(-1.5f, 1.5f), Random.Range(-1.5f, 1.5f)); } }