Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends KinematicBody
- # class member variables go here, for example:
- # var a = 2
- # var b = "textvar"
- var target = null
- var targetNode
- var as
- var path = null
- var tarPoint
- var ownPoint
- func startup():
- targetNode = get_tree().get_nodes_in_group("Player")[0]
- as = MinorData.get_star()
- pass
- func nav_to():
- tarPoint = as.get_closest_point(targetNode.get_translation())
- ownPoint = as.get_closest_point(get_translation())
- # get path
- if(ownPoint > -1):
- path = as.get_point_path(ownPoint, tarPoint)
- if(path.size() > 1):
- target = path[1]
- move_out()
- pass
- func move_out():
- if(target != null):
- #get distance from target
- var pos = get_global_transform().origin
- var eyePoint = Vector3(target[0], pos[1],target[2])
- var dist = get_translation().distance_to(eyePoint)
- if(dist > 1):
- look_at(eyePoint, Vector3(0,1,0))
- set_transform(get_transform().translated(Vector3(0,0,-1)))
- if(not is_on_floor()):
- move_and_slide(Vector3(0,-1,0))
- pass
- func _process(delta):
- nav_to()
- pass
- func _ready():
- startup()
- nav_to()
- set_process(true)
- # Called every time the node is added to the scene.
- # Initialization here
- pass
- #func _process(delta):
- # # Called every frame. Delta is time since last frame.
- # # Update game logic here.
- # pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement