Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends CharacterBody2D
- var speed := 2.0
- @onready var paddle: CharacterBody2D = $"../Paddle"
- @onready var main: Node2D = $".."
- var game_on = false
- var dir = Vector2.ZERO
- @onready var ball: CharacterBody2D = $"."
- signal hitBrick
- func _ready():
- reset_ball()
- func _physics_process(delta: float) -> void:
- game_start()
- if game_on:
- var collision_info = move_and_collide(velocity * delta * speed)
- if collision_info:
- velocity = velocity.bounce(collision_info.get_normal())
- var collision_data = collision_info.get_collider()
- print(collision_data.is_in_group("Blocks"))
- if collision_data.is_in_group("Blocks"):
- emit_signal("hitBrick")
- func _on_bottom_screen_body_entered(_body: Node2D) -> void:
- lose_life()
- reset_ball()
- func lose_life():
- main.lives -= 1
- print(main.lives)
- if main.lives <= 0:
- game_over()
- else: pass
- func game_start():
- if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and !game_on:
- game_on = true
- velocity = Vector2(randf_range(-90, 90), -180)
- func reset_ball():
- game_on = false
- global_position = Vector2(paddle.global_position.x, paddle.global_position.y - 50)
- func game_over():
- pass
Advertisement
Add Comment
Please, Sign In to add comment