Rompi i mattoni
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 6 di 33.
La palla attraversa i mattoni. Anche i mattoni sono corpi e ognuno appartiene al gruppo bricks. is_in_group distingue un mattone dalla racchetta.
Ogni mattone ha una funzione smash(). Fa esplodere il mattone in scintille e lo rimuove.
elif body.is_in_group("bricks"):
body.smash()Quindi la palla rimbalza allontanandosi dal centro del mattone: verso il basso se si trova più in basso del mattone, verso l'alto se si trova più in alto. La palla può colpire un mattone dall'alto dopo essere passata attraverso uno spazio vuoto.
if position.y > body.position.y:
velocity.y = abs(velocity.y)
else:
velocity.y = -abs(velocity.y)Non invertire velocity.y. Se la palla tocca due mattoni contemporaneamente, due inversioni si annullano a vicenda.
Sfida
MedioIn _on_body_entered, aggiungi un elif per i corpi nel gruppo bricks:
- Chiama
body.smash(). - Fai rimbalzare la palla verso il basso se si trova sotto il centro del mattone, verso l'alto se si trova sopra.
Provalo tu
extends Area2D
var velocity = Vector2(110, -280)
func _ready():
body_entered.connect(_on_body_entered)
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
func _on_body_entered(body):
if body.name == "Paddle":
velocity.x = (position.x - body.position.x) * 5
velocity.y = -abs(velocity.y)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progetti
Esercitati da solo: Playground Godot