Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #the car script
- extends KinematicBody
- var active = false
- var y_velo = 0
- var car_zone = false
- func _physics_process(_delta):
- if active:
- $Camera.make_current()
- movement()
- leaving_car()
- elif !active:
- entering_car()
- pass
- pass
- func movement():
- var move_speed = 20
- var jump_force = 35
- var rotate_speed = 2
- var gravity = 1.2
- var max_fall_speed = 20
- var move_vec = Vector3()
- if Input.is_key_pressed(KEY_W):
- move_vec.z -= 1
- if Input.is_key_pressed(KEY_S):
- move_vec.z += 1
- if Input.is_key_pressed(KEY_D):
- self.rotate_y(deg2rad(-rotate_speed))
- if Input.is_key_pressed(KEY_A):
- self.rotate_y(deg2rad(rotate_speed))
- move_vec = move_vec.normalized()
- move_vec = move_vec.rotated(Vector3(0, 1, 0), rotation.y)
- move_vec *= move_speed
- move_vec.y = y_velo
- move_and_slide(move_vec, Vector3(0, 1, 0))
- var grounded = is_on_floor()
- y_velo -= gravity
- if grounded and y_velo <= 0:
- y_velo = -0.1
- if y_velo < max_fall_speed:
- y_velo = -max_fall_speed
- func entering_car():
- if Input.is_action_just_pressed("ui_e") && car_zone:
- var hidden_player = get_parent().get_node("player")
- hidden_player.active = false
- $Camera.make_current()
- active = true
- func leaving_car():
- var vehicle = $"."
- var hidden_player = get_parent().get_node("player")
- var newLoc = vehicle.global_transform.origin - 2*vehicle.global_transform.basis.x
- if car_zone == false && Input.is_action_just_pressed("ui_e"):
- hidden_player.active = true
- active = false
- hidden_player.global_transform.origin = newLoc
- func _on_player_detect_body_entered(body):
- if body.name == "player":
- car_zone = true
- func _on_player_detect_body_exited(body):
- if body.name == "player":
- car_zone = false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement