]> Untitled Git - star-foxy.git/blobdiff - player/player.gd
Fixed air friction
[star-foxy.git] / player / player.gd
index 53bd3ed500259114a93cd216d6d67f71cb75e0cb..fa2445ffe0e2a39f195475cd12acb3bcc89a517d 100644 (file)
@@ -1,9 +1,9 @@
 extends KinematicBody
 
-const SPEED_FORWARD = 5
-const SPEED_TURN = 60
-const SPEED_AIM = PI / 4
-const FRICTION = 0.99
+const SPEED_FORWARD = 20
+const SPEED_MAX = 20
+const SPEED_TURN = 120
+const SPEED_AIM = PI / 2
 
 var velocity = Vector3()
 
@@ -27,25 +27,27 @@ func get_player_input(delta):
                velocity += SPEED_TURN * -vec_vertical * delta
        
        if Input.is_action_pressed("player_aim_up"):
-               rotate_x(SPEED_AIM * delta)
+               rotate_object_local(Vector3.RIGHT, SPEED_AIM * delta)
        elif Input.is_action_pressed("player_aim_down"):
-               rotate_x(-SPEED_AIM * delta)    
+               rotate_object_local(Vector3.RIGHT, -SPEED_AIM * delta)  
                
        if Input.is_action_pressed("player_aim_left"):
-               rotate_y(SPEED_AIM * delta)
+               rotate(Vector3.UP, SPEED_AIM * delta)
        elif Input.is_action_pressed("player_aim_right"):
-               rotate_y(-SPEED_AIM * delta)    
+               rotate(Vector3.UP, -SPEED_AIM * delta)  
                
        
 func _process(delta):
        # get velocity changes player asks for
        get_player_input(delta)
-       velocity.x *= FRICTION
-       velocity.y *= FRICTION
        
        # move foward according to the camera's POV
        var vec_forward = transform.basis.z
        velocity += SPEED_FORWARD * -vec_forward * delta
+       
+       # air friction
+       var friction = SPEED_MAX / velocity.length()
+       velocity *= friction
 
-func _physics_process(delta):
+func _physics_process(_delta):
        velocity = move_and_slide(velocity, Vector3.UP)