init
This commit is contained in:
40
campath.gd
Normal file
40
campath.gd
Normal file
@@ -0,0 +1,40 @@
|
||||
extends Path
|
||||
|
||||
signal scene_finished
|
||||
|
||||
var offset = 0
|
||||
var length = 0
|
||||
var dir = 0
|
||||
var run = false
|
||||
var fadeout = false
|
||||
|
||||
func _ready():
|
||||
length = curve.get_baked_length()
|
||||
|
||||
func playforward():
|
||||
run = true
|
||||
dir = 1
|
||||
offset = 0
|
||||
fadeout = false
|
||||
get_node("Camera").make_current()
|
||||
|
||||
func playbackward():
|
||||
run = true
|
||||
dir = -1
|
||||
offset = length
|
||||
fadeout = false
|
||||
get_node("Camera").make_current()
|
||||
|
||||
func _process(delta):
|
||||
if run:
|
||||
offset += delta * dir
|
||||
if not fadeout:
|
||||
if dir > 0 and offset >= length-1 or dir < 0 and offset <= 1:
|
||||
emit_signal("scene_finished")
|
||||
fadeout = true
|
||||
var p1 = to_global(curve.interpolate_baked(offset))
|
||||
var p2 = to_global(curve.interpolate_baked(offset+dir))
|
||||
if p1 == p2:
|
||||
run = false
|
||||
return
|
||||
$Camera.look_at_from_position(p1,p2,Vector3.UP)
|
||||
Reference in New Issue
Block a user