Menu
CoddyTech

Rimbalza sulla racchetta

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 4 di 33.

La pallina attraversa la racchetta. La pallina è un Area2D. Il suo segnale body_entered scatta 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. 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

In ball.gd, fai rimbalzare la palla sul paddle:

  1. 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).

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
quiz iconMettiti alla prova

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