Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. extends KinematicBody
  2.  
  3. var animPlayer
  4. var moveSpeed = 10
  5. var targetPosition
  6.  
  7. var isWalking
  8.  
  9. func _ready():
  10. animPlayer = $AnimationPlayer
  11. pass
  12.  
  13. #func _process(delta):
  14. # # Called every frame. Delta is time since last frame.
  15. # # Update game logic here.
  16. # pass
  17.  
  18. func onEnterWalkState():
  19. animPlayer.play("walk")
  20. pass
  21.  
  22. func onExitWalkState():
  23. animPlayer.stop(true)
  24. pass
  25.  
  26. func walkUpdate(delta):
  27. pass
  28.  
  29. func walkPhysics(delta):
  30. var playerPosition = self.global_transform.origin
  31. if playerPosition >= (targetPosition-Vector3(1,0,1)) and playerPosition <= (targetPosition+Vector3(1,0,1)):
  32. isWalking = false
  33. onExitWalkState()
  34. pass
  35.  
  36. var direction = (targetPosition - playerPosition).normalized()
  37. var velocity = direction*moveSpeed*delta
  38. velocity.y = 0
  39. move_and_collide(velocity)
  40. pass
  41.  
  42. func _physics_process(delta):
  43. if Input.is_action_just_pressed("left_click"):
  44. isWalking = true
  45. targetPosition = getTargetPositionByRayTrace()
  46. onEnterWalkState()
  47.  
  48. if isWalking:
  49. walkPhysics(delta)
  50. pass
  51. pass
  52.  
  53. func getTargetPositionByRayTrace():
  54. var rayLength = 1000
  55. var mousePos = get_viewport().get_mouse_position()
  56. var camera = get_viewport().get_camera()
  57. var from = camera.project_ray_origin(mousePos)
  58. var to = from + camera.project_ray_normal(mousePos) * rayLength
  59. var space_state = get_world().direct_space_state
  60. var result = space_state.intersect_ray(from, to, [self])
  61. print("Result: ", result.position, result.collider)
  62. return result.position
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement