mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 15:38:14 +00:00
added the game
This commit is contained in:
34
Scripts/Classes/States/Player/Climb.gd
Normal file
34
Scripts/Classes/States/Player/Climb.gd
Normal file
@@ -0,0 +1,34 @@
|
||||
extends PlayerState
|
||||
|
||||
var climb_direction := 0
|
||||
|
||||
var vine: Vine = null
|
||||
|
||||
const CLIMB_SPEED := 50
|
||||
|
||||
var cutscene := false
|
||||
|
||||
var auto_climb := false
|
||||
|
||||
func enter(msg := {}) -> void:
|
||||
vine = msg.get("Vine")
|
||||
cutscene = msg.has("Cutscene")
|
||||
|
||||
func physics_update(_delta: float) -> void:
|
||||
player.velocity.x = 0
|
||||
if player.input_direction != 0 and climb_direction == 0 and not cutscene:
|
||||
player.direction = -player.input_direction
|
||||
player.sprite.scale.x = player.direction
|
||||
player.global_position.x = vine.global_position.x - (8 * player.direction)
|
||||
if not cutscene and not auto_climb:
|
||||
climb_direction = sign(Input.get_axis("move_up" + "_" + str(player.player_id),"move_down" + "_" + str(player.player_id)))
|
||||
if vine.can_tele and player.global_position.y - 64 < vine.top_point and climb_direction == -1:
|
||||
climb_direction = -1
|
||||
auto_climb = true
|
||||
player.velocity.y = CLIMB_SPEED * climb_direction
|
||||
player.sprite.play("Climb")
|
||||
player.sprite.speed_scale = abs(climb_direction * 1.5)
|
||||
player.move_and_slide()
|
||||
if Global.player_action_just_pressed("jump", player.player_id) and not cutscene:
|
||||
state_machine.transition_to("Normal")
|
||||
player.jump()
|
Reference in New Issue
Block a user