Guest User

Untitled

a guest
Nov 28th, 2025
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. extends CharacterBody2D
  2.  
  3. var speed := 2.0
  4. @onready var paddle: CharacterBody2D = $"../Paddle"
  5. @onready var main: Node2D = $".."
  6. var game_on = false
  7. var dir = Vector2.ZERO
  8. @onready var ball: CharacterBody2D = $"."
  9.  
  10. signal hitBrick
  11.  
  12.  
  13. func _ready():
  14. reset_ball()
  15.  
  16.  
  17. func _physics_process(delta: float) -> void:
  18. game_start()
  19.  
  20. if game_on:
  21. var collision_info = move_and_collide(velocity * delta * speed)
  22.  
  23. if collision_info:
  24. velocity = velocity.bounce(collision_info.get_normal())
  25. var collision_data = collision_info.get_collider()
  26. print(collision_data.is_in_group("Blocks"))
  27. if collision_data.is_in_group("Blocks"):
  28. emit_signal("hitBrick")
  29.  
  30.  
  31. func _on_bottom_screen_body_entered(_body: Node2D) -> void:
  32. lose_life()
  33. reset_ball()
  34.  
  35.  
  36. func lose_life():
  37. main.lives -= 1
  38. print(main.lives)
  39. if main.lives <= 0:
  40. game_over()
  41. else: pass
  42.  
  43.  
  44. func game_start():
  45. if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and !game_on:
  46. game_on = true
  47. velocity = Vector2(randf_range(-90, 90), -180)
  48.  
  49.  
  50. func reset_ball():
  51. game_on = false
  52. global_position = Vector2(paddle.global_position.x, paddle.global_position.y - 50)
  53.  
  54.  
  55. func game_over():
  56. pass
  57.  
  58.  
Advertisement
Add Comment
Please, Sign In to add comment