Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Fai rimbalzare la pallina sul paddle.

  1. In ball.gd, collega body_entered a _on_body_entered in _ready.
  2. Quando il nome del corpo è Paddle, imposta velocity.x su (position.x - body.position.x) * 5 e velocity.y su -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