Files
kicking-high/proto2/vehicles/vehicle_camera.gd
2019-08-20 01:43:08 +03:00

35 lines
970 B
GDScript

extends Spatial
export var target_path: NodePath
var target: Node
var dist = 0.0
func _ready():
target = get_node(target_path)
var speed_slow = 4.5
var speed_fast = 8.5
var speed_cur = 3.5
func _process(delta):
if !target:
return
var p1 = global_transform.origin
var p2 = target.global_transform.origin
dist = p1.distance_to(p2)
if dist < 20.0:
speed_cur -= delta * 0.2
elif dist >= 25.0:
speed_cur += delta * 0.1
speed_cur = clamp(speed_cur, speed_slow, speed_fast)
if dist < 10.0 && dist > 3.5:
p1 = p1.linear_interpolate(p2, clamp(speed_cur * delta * (dist / 6.0 - 2.0 / 3.0), 0.0, 1.0))
elif dist >= 10.0:
p1 = p1.linear_interpolate(p2, clamp(speed_cur * delta, 0.0, 1.0))
p1.y = 1.4
global_transform.origin = p1
# elif dist >= 30.0:
# global_transform.origin = p1 + (p2 - p1).normalized() * ((p2 - p1).length() - 3.0)
global_transform = global_transform.looking_at(p2, Vector3.UP)
global_transform = global_transform.orthonormalized()