Rompi i mattoncini
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 6 di 36.
La palla attraversa i mattoni. Anche i mattoni sono corpi e ciascuno 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()Poi 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. Una palla può colpire un mattone dall’alto dopo essere passata attraverso uno spazio.
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
MedioFai in modo che la palla rompa i mattoni.
- In
_on_body_entered, aggiungi unelifper i corpi nel gruppobricks. - 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.
Premi «Gioca»: i mattoni esplodono uno alla volta. Poi premi «Verifica».
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)
Tutte le lezioni di Progetti
Esercitati da solo: Playground Godot