void HandleXMovement() { if (Time.time - startTime < notActionableForFirstSeconds) { return; } if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { xVel -= xspeed * Time.deltaTime; } if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { xVel += xspeed * Time.deltaTime; } if (xVel > maxXVel) { xVel = maxXVel; } if (xVel < -maxXVel) { xVel = -maxXVel; } if (grounded) { xVel *= 0.9f; } if (xVel > 0) { mirrored = 1; transform.localScale = new Vector3(transform.localScale.y, transform.localScale.y, transform.localScale.z); } else if (xVel < 0) { mirrored = -1; transform.localScale = new Vector3(transform.localScale.y * -1, transform.localScale.y, transform.localScale.z); } Vector2 frontPos = world.GetPixelPosition(front.position); CollsionType collision = world.IsCollision(frontPos); if (collision == CollsionType.ground) { xVel = 0; } else if (collision == CollsionType.lava) { Die(); } else if (collision == CollsionType.bounce) { xVel *= -2; } }
void Update() { if (dead) { return; } HandleXMovement(); HandleJumpInput(); if (yVel < 0) { Vector2 headPos = world.GetPixelPosition(head.position); CollsionType headCollision = world.IsCollision(headPos); if (headCollision == CollsionType.ground) { yVel = -yVel; } else if (headCollision == CollsionType.lava) { Die(); } else if (headCollision == CollsionType.bounce) { yVel = -yVel * 2; } } yVel += gravity * scale * Time.deltaTime; if (yVel > maxYVel) { yVel = maxYVel; } if (roped) { HandleRopeMovement(); rope.UpdateRope(); } if (!grounded) { yPos -= yVel; } xPos += xVel; Vector3 newPos = new Vector3(xPos, yPos, 1); transform.position = newPos; Vector2 screenPos = world.GetPixelPosition(feet.position); CollsionType collision = world.IsCollision(screenPos); if (roped) { collision = CollsionType.none; } if (collision == CollsionType.ground) { if (grounded != true) { camera.Shake(); } grounded = true; ToggleRope(false); } else { grounded = false; } if (collision == CollsionType.lava) { Die(); } else if (collision == CollsionType.bounce) { Bounce(); audio.clip = bounceClip; audio.Play(); } rope.UpdateGraphics(); }