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.
Desafío
IntermedioEn ball.gd, haz que la pelota rebote en la paleta:
- Conecta
body_entereda_on_body_entereden_ready. - Cuando el nombre del cuerpo sea
Paddle, establecevelocity.xen(position.x - body.position.x) * 5yvelocity.yen-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
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