Advertisement
Aighton

Godot Player Script

Sep 13th, 2022
3,250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Godot GLSL 1.04 KB | Source Code | 0 0
  1. #the player script
  2.  
  3. extends KinematicBody
  4.  
  5. var active = true
  6.  
  7. var y_velo = 0
  8.  
  9. func _physics_process(_delta):
  10.     if active:
  11.         show()
  12.         $CollisionShape.disabled = false
  13.         $Camera.make_current()
  14.         movement()
  15.     elif !active:
  16.         hide()
  17.         $CollisionShape.disabled = true
  18.         pass
  19.    
  20.     pass
  21.  
  22. func movement():
  23.     var move_speed = 10
  24.     var jump_force = 35
  25.     var rotate_speed = 2
  26.  
  27.     var gravity = 1.2
  28.     var max_fall_speed = 20
  29.  
  30.     var move_vec = Vector3()
  31.     if Input.is_key_pressed(KEY_W):
  32.         move_vec.z -= 1
  33.     if Input.is_key_pressed(KEY_S):
  34.         move_vec.z += 1
  35.     if Input.is_key_pressed(KEY_D):
  36.         self.rotate_y(deg2rad(-rotate_speed))
  37.     if Input.is_key_pressed(KEY_A):
  38.         self.rotate_y(deg2rad(rotate_speed))
  39.  
  40.     move_vec = move_vec.normalized()
  41.     move_vec = move_vec.rotated(Vector3(0, 1, 0), rotation.y)
  42.     move_vec *= move_speed
  43.     move_vec.y = y_velo
  44.     move_and_slide(move_vec, Vector3(0, 1, 0))
  45.  
  46.     var grounded = is_on_floor()
  47.     y_velo -= gravity
  48.     if grounded and y_velo <= 0:
  49.         y_velo = -0.1
  50.     if y_velo < max_fall_speed:
  51.         y_velo = -max_fall_speed
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement