Advertisement
Guest User

Untitled

a guest
Sep 12th, 2024
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends CharacterBody2D
  2.  
  3. @export var walk_speed = 125.0
  4. @export var run_speed = 175.0
  5.  
  6. @export var jump_force = 150.0  # Upward jump force
  7. @export var gravity = 300.0
  8.  
  9. @export var character_y_translate = 0
  10.  
  11. @onready var anim_tree = $AnimationTree
  12. @onready var animation_playback = anim_tree.get("parameters/playback")
  13.  
  14. @onready var shadow_sprite = $ShadowSprite
  15. @onready var character_sprite = $CharacterSprite
  16.  
  17. var player_direction: Vector2 = Vector2.ZERO
  18. var is_pressing_shift: bool = false
  19. var is_pressing_left_or_right = false
  20.  
  21. var jump_velocity = 0.0
  22. var jump_position = 0.0
  23. var is_jumping = false
  24.  
  25.  
  26. func _ready():
  27.     anim_tree.active = true
  28.     animation_playback.travel("Idle")
  29.  
  30. func _physics_process(delta):
  31.     player_direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
  32.     is_pressing_shift = Input.is_action_pressed("ui_shift")
  33.     is_pressing_left_or_right = player_direction.x
  34.    
  35.     if player_direction:
  36.         var speed = run_speed if is_pressing_shift else walk_speed
  37.         velocity = player_direction * speed
  38.     else:
  39.         velocity = Vector2.ZERO
  40.    
  41.     if is_jumping:
  42.         jump_position += jump_velocity * delta
  43.         jump_velocity -= gravity * delta  # Simulated gravity pulling the character down
  44.  
  45.         velocity.y -= jump_velocity
  46.    
  47.         if jump_position <= 0.0:
  48.             jump_position = 0.0  # Snap back to the ground
  49.             is_jumping = false  # Stop jumping
  50.             jump_velocity = 0.0
  51.     else:
  52.         # Handle jump input
  53.         if Input.is_action_just_pressed("ui_jump"):
  54.             is_jumping = true
  55.             jump_velocity = jump_force
  56.  
  57.     move_and_slide()
  58.  
  59. func _process(delta):
  60.     update_animations()
  61.  
  62. func update_animations():
  63.     if(velocity == Vector2.ZERO):
  64.         animation_playback.travel("Idle")
  65.     else:
  66.         if (is_pressing_shift):
  67.             animation_playback.travel("Run")
  68.         else:
  69.             animation_playback.travel("Walk")
  70.    
  71.     if is_pressing_left_or_right:
  72.         anim_tree.set("parameters/Idle/blend_position", player_direction)
  73.         anim_tree.set("parameters/Walk/blend_position", player_direction)
  74.         anim_tree.set("parameters/Run/blend_position", player_direction)
  75.        
  76.    
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement