extends CharacterBody2D @export var START_SPEED = 300.0 @export var SPEED_INCREMENT = 20.0 var current_speed = START_SPEED var direction = Vector2.ZERO func _ready() -> void: reset_ball() func _physics_process(delta: float) -> void: # Bewegt den Ball und handhabt die Kollisionen mit den Schlägern var collision = move_and_collide(direction * current_speed * delta) if collision: direction = direction.bounce(collision.get_normal()) current_speed += SPEED_INCREMENT # Abprallen an den horizontalen Rändern (oben und unten) if global_position.y < 0 or global_position.y > 648: direction.y *= -1 func reset_ball() -> void: # Startet exakt in der Mitte des 1152x648 Bildschirms global_position = Vector2(576, 324) current_speed = START_SPEED # Zufällige Richtung nach links oder rechts starten var x_dir = 1 if randf() > 0.5 else -1 var y_dir = randf_range(-0.5, 0.5) direction = Vector2(x_dir, y_dir).normalized()