Advertisement
Drykul

Godot Moon Lander Player Object (GDScript)

Mar 27th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. extends KinematicBody2D
  2.  
  3. const GRAVITY = 200.0
  4. const WALK_SPEED = 200
  5.  
  6. var playerY = 0.0
  7. var velocity = Vector2()
  8. var thrusterUpSFX = false
  9. var thrusterSideSFX = false
  10. var voice = null
  11. var sideBoostersDisabled = false
  12.  
  13. func _fixed_process(delta):
  14. #print(get_node("/root/global").save_data.highscore)
  15.  
  16. playerY = self.get_pos()[1]
  17. velocity.y += delta * GRAVITY
  18.  
  19. #------------- BEGIN PLAYER CONTROL PROCESSING -----------------
  20. ##-------- HORIZONTAL MOVEMENT --------##
  21. if (Input.is_action_pressed("ui_left") && sideBoostersDisabled == false):
  22. velocity.x = -WALK_SPEED
  23. get_node("rightFlames").set_hidden(true)
  24. get_node("leftFlames").set_hidden(false)
  25. if (thrusterUpSFX == false && thrusterSideSFX == false):
  26. voice = get_tree().get_root().get_node("Base").get_node("SamplePlayer").play("thrusters")
  27. thrusterSideSFX = true
  28. elif (Input.is_action_pressed("ui_right") && sideBoostersDisabled == false):
  29. velocity.x = WALK_SPEED
  30. get_node("leftFlames").set_hidden(true)
  31. get_node("rightFlames").set_hidden(false)
  32. if (thrusterUpSFX == false && thrusterSideSFX == false):
  33. voice = get_tree().get_root().get_node("Base").get_node("SamplePlayer").play("thrusters")
  34. thrusterSideSFX = true
  35. else:
  36. velocity.x = 0
  37. get_node("leftFlames").set_hidden(true)
  38. get_node("rightFlames").set_hidden(true)
  39. if (thrusterSideSFX == true):
  40. get_tree().get_root().get_node("Base").get_node("SamplePlayer").stop_voice(0)
  41. thrusterSideSFX = false
  42.  
  43. ##-------- VERTICAL MOVEMENT --------##
  44. if (Input.is_action_pressed("ui_up")):
  45. get_node("upFlames").set_hidden(false)
  46. if (thrusterUpSFX == false && thrusterSideSFX == false):
  47. voice = get_tree().get_root().get_node("Base").get_node("SamplePlayer").play("thrusters")
  48. thrusterUpSFX = true
  49. velocity.y -= 10
  50. if (sideBoostersDisabled == true):
  51. sideBoostersDisabled = false
  52. else:
  53. get_node("upFlames").set_hidden(true)
  54. if (thrusterUpSFX == true):
  55. get_tree().get_root().get_node("Base").get_node("SamplePlayer").stop_voice(0)
  56. thrusterUpSFX = false
  57.  
  58. ##-------- END GAME & SAVE HIGH SCORE --------##
  59. if (Input.is_action_pressed("ui_cancel")):
  60. get_node("/root/global").save(get_node("/root/global").score)
  61. get_tree().quit()
  62.  
  63. var motion = velocity * delta
  64. move(motion)
  65.  
  66. if (is_colliding()):
  67. var collider = str(get_collider())
  68. for i in get_tree().get_nodes_in_group('rockGround'):
  69. if collider == str(i):
  70. print("Disabling")
  71. sideBoostersDisabled = true
  72. print(sideBoostersDisabled)
  73. var n = get_collision_normal()
  74. motion = n.slide(motion)
  75. velocity = n.slide(velocity)
  76. move(motion)
  77.  
  78. func _ready():
  79. set_fixed_process(true)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement