Files
sidescroller-project/sidescroller/scripts/playerclimbup.gd
2025-06-11 17:54:55 +02:00

47 lines
1.4 KiB
GDScript

extends State
class_name PlayerClimbUp
func get_state_name():
return str(self).split(":")[0]
var ledge_cshape = preload("res://resources/player ledge cshape.tres")
var standing_cshape = preload("res://resources/player standing cshape.tres")
func enter():
player.climbup_pos1 = player.position + Vector2(0, -52)
player.climbup_pos2 = player.position + Vector2(player.facing_direction * 40, -52)
print(player.position)
print (player.climbup_pos1)
player.ap.play("climb up")
player.sprite.position.x = player.facing_direction * 11
player.sprite.position.y = -60
player.cshape.shape = ledge_cshape
player.cshape.position.y = -69
func exit():
player.cshape.shape = standing_cshape
player.cshape.position.y = -43
player.sprite.position.x = 0
player.sprite.position.y = -48
player.climbup_pos1_reached = false
func update(delta):
pass
func physics_update(delta):
if player.position != player.climbup_pos1 && !player.climbup_pos1_reached:
player.position = player.position.move_toward(player.climbup_pos1, player.climbup_speed_y * delta)
if player.position == player.climbup_pos1:
player.climbup_pos1_reached = true
elif player.position != player.climbup_pos2 && player.climbup_pos1_reached:
player.position = player.position.move_toward(player.climbup_pos2, player.climbup_speed_x * delta)
elif player.position == player.climbup_pos2:
Transitioned.emit(self, "PlayerFall")