Menu
CoddyTech

Rebota en la paleta

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 4 de 33.

La pelota atraviesa la paleta. La pelota es un Area2D. Su señal body_entered se activa cuando un cuerpo, como la paleta, la toca. Haz que la pelota suba cuando ese cuerpo sea la paleta:

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.y = -abs(velocity.y)

abs() elimina el signo menos, así que -abs(velocity.y) siempre apunta hacia arriba. Un segundo contacto no puede enviar la pelota de vuelta hacia abajo.

Para que el jugador pueda apuntar, establece velocity.x según el lugar donde la pelota golpee. position.x - body.position.x es la distancia de la pelota al centro de la paleta. Es negativa en la mitad izquierda y positiva en la derecha. Multiplícala por 5.

challenge icon

Desafío

Intermedio

En ball.gd, haz que la pelota rebote en la paleta:

  1. Conecta body_entered a _on_body_entered en _ready.
  2. Cuando el nombre del cuerpo sea Paddle, establece velocity.x en (position.x - body.position.x) * 5 y velocity.y en -abs(velocity.y).

Pruébalo tú mismo

extends Area2D

var velocity = Vector2(110, -280)

func _physics_process(delta):
	position += velocity * delta
	if position.x < 8 or position.x > 632:
		velocity.x = -velocity.x
	if position.y < 42:
		velocity.y = -velocity.y
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot