//Handle render and controls void Update() { if (is_dead) { return; } hit_timer += Time.deltaTime; grounded_timer += Time.deltaTime; //Controls PlayerControls controls = PlayerControls.Get(player_id); move_input = !disable_controls?controls.GetMove() : Vector2.zero; jump_press = !disable_controls?controls.GetJumpDown() : false; jump_hold = !disable_controls?controls.GetJumpHold() : false; if (jump_press || move_input.y > 0.5f) { Jump(); } //Reset when fall if (transform.position.y < fall_pos_y - GetSize().y) { TakeDamage(max_hp * fall_damage_percent); if (reset_when_fall) { Teleport(last_ground_pos); } } }
private void UpdateJump() { PlayerControls controls = PlayerControls.Get(player_id); //Jump jump_timer += Time.fixedDeltaTime; //Jump end timer if (is_jumping && !controls.GetJumpHold() && jump_timer > jump_time_min) { is_jumping = false; } if (is_jumping && jump_timer > jump_time_max) { is_jumping = false; } //Jump hit ceil if (is_ceiled) { is_jumping = false; move.y = Mathf.Min(move.y, 0f); } //Add jump velocity if (!is_grounded) { //Falling float gravity = !is_jumping ? jump_fall_gravity : jump_gravity; //Gravity increased when going down move.y = Mathf.MoveTowards(move.y, -move_max * 2f, gravity * Time.fixedDeltaTime); } else if (!is_jumping) { //Grounded move.y = 0f; } /*if (!is_grounded) * grounded_timer = 0f; * * //Average grounded pos * if (!was_grounded && is_grounded) * average_ground_pos = transform.position; * if (is_grounded) * average_ground_pos = Vector3.Lerp(transform.position, average_ground_pos, 1f * Time.deltaTime); * * //Save last landed position * if (is_grounded && grounded_timer > 1f) * last_ground_pos = average_ground_pos;*/ if (!was_grounded && is_grounded) { if (onLand != null) { onLand.Invoke(); } } }
//Handle render and controls void Update() { if (is_dead) { return; } hit_timer += Time.deltaTime; grounded_timer += Time.deltaTime; //Controls PlayerControls controls = PlayerControls.Get(player_id); move_input = !disable_controls?controls.GetMove() : Vector2.zero; jump_press = !disable_controls?controls.GetJumpDown() : false; jump_hold = !disable_controls?controls.GetJumpHold() : false; if (jump_press || move_input.y > 0.5f) { Jump(); } //Reset when fall if (transform.position.y < fall_pos_y - GetSize().y) { TakeDamage(max_hp * fall_damage_percent); if (reset_when_fall) { Teleport(last_ground_pos); } } if (grayness < 1 && ( (rigid.position.x >= 20 && rigid.position.x <= 24 && rigid.position.y > -1 && rigid.position.y < 0) || (rigid.position.x >= 39 && rigid.position.x <= 41 && rigid.position.y > 7 && rigid.position.y < 8) || (rigid.position.x >= 54 && rigid.position.x <= 56 && rigid.position.y > 22 && rigid.position.y < 23) || (rigid.position.x >= 80 && rigid.position.y > -3 && rigid.position.y < -2) )) { grayness += 0.01f; } else if (grayness > 0) { grayness -= 0.001f; } character.GetComponent <SpriteRenderer>().color = new Color(grayness, grayness, grayness, 1); }