Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. extends Node2D
  2.  
  3. #Member variables
  4. var screen_size
  5. var pad_size
  6. var direction = Vector2(1.0, 0.0)
  7.  
  8. const INITIAL_BALL_SPEED = 80
  9. var ball_speed = INITIAL_BALL_SPEED
  10. const PAD_SPEED = 150
  11.  
  12. func _ready():
  13. set_process(true)
  14. screen_size = get_viewport_rect().size
  15. pad_size = get_node("left").get_texture().get_size()
  16.  
  17. func _process(delta):
  18. var ball_pos = get_node("ball").get_pos()
  19. var left_rect = Rect2( get_node("left").get_pos() - pad_size*0.5, pad_size )
  20. var right_rect = Rect2( get_node("right").get_pos() - pad_size*0.5, pad_size )
  21. ball_pos += direction * ball_speed * delta
  22. #Flip when touching roof or floor
  23. if ((ball_pos.y < 0 and direction.y < 0) or (ball_pos.y > screen_size.y and direction.y > 0)):
  24. direction.y = -direction.y
  25. # Flip, change direction and increase speed when touching pads
  26. if ((left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
  27. direction.x = -direction.x
  28. direction.y = randf()*2.0 - 1
  29. direction = direction.normalized()
  30. ball_speed *= 1.1
  31. # Check gameover
  32. if (ball_pos.x < 0 or ball_pos.x > screen_size.x):
  33. ball_pos = screen_size*0.5
  34. ball_speed = INITIAL_BALL_SPEED
  35. direction = Vector2(-1, 0)
  36.  
  37. get_node("ball").set_pos(ball_pos)
  38.  
  39. # Move left pad
  40. var left_pos = get_node("left").get_pos()
  41.  
  42. if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
  43. left_pos.y += -PAD_SPEED * delta
  44. if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
  45. left_pos.y += PAD_SPEED * delta
  46.  
  47. get_node("left").set_pos(left_pos)
  48.  
  49. # Move right pad
  50. var right_pos = get_node("right").get_pos()
  51.  
  52. if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
  53. right_pos.y += -PAD_SPEED * delta
  54. if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
  55. right_pos.y += PAD_SPEED * delta
  56.  
  57. get_node("right").set_pos(right_pos)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement