Rimbalza sulla racchetta
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 4 di 36.
La pallina attraversa la racchetta. La pallina è un Area2D. Il suo segnale body_entered si attiva quando un corpo, come la racchetta, la tocca. Fai rimbalzare la pallina verso l’alto quando quel corpo è la racchetta:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() rimuove il segno meno, quindi -abs(velocity.y) punta sempre verso l’alto. Un secondo tocco non può rimandare la pallina verso il basso.
Per permettere al giocatore di mirare, imposta velocity.x in base al punto in cui la pallina colpisce la racchetta. position.x - body.position.x è la distanza della pallina dal centro della racchetta. È negativa nella metà sinistra e positiva in quella destra. Moltiplicala per 5.
Sfida
MedioFai rimbalzare la pallina sul paddle.
- In
ball.gd, collegabody_entereda_on_body_enteredin_ready. - Quando il nome del corpo è
Paddle, impostavelocity.xsu(position.x - body.position.x) * 5evelocity.ysu-abs(velocity.y).
Premi «Gioca» e prendi la pallina: volerà di nuovo verso l'alto, in direzione del lato che ha colpito. Poi premi «Verifica».
Provalo tu
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
Tutte le lezioni di Progetti
Esercitati da solo: Playground Godot