Menu
CoddyTech

Faire rebondir la balle sur la raquette

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 4 sur 33.

La balle traverse la raquette. La balle est une Area2D. Son signal body_entered se déclenche lorsqu’un corps, comme la raquette, la touche. Faites rebondir la balle vers le haut lorsque ce corps est la raquette :

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.y = -abs(velocity.y)

abs() supprime le signe moins, donc -abs(velocity.y) pointe toujours vers le haut. Un deuxième contact ne peut pas renvoyer la balle vers le bas.

Pour permettre au joueur de viser, définissez velocity.x en fonction de l’endroit où la balle touche la raquette. position.x - body.position.x correspond à la distance entre la balle et le milieu de la raquette. Cette valeur est négative sur la moitié gauche et positive sur la moitié droite. Multipliez-la par 5.

challenge icon

Défi

Moyen

Dans ball.gd, fais rebondir la balle sur la raquette :

  1. Connecte body_entered à _on_body_entered dans _ready.
  2. Lorsque le nom du corps est Paddle, définis velocity.x sur (position.x - body.position.x) * 5 et velocity.y sur -abs(velocity.y).

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Projets

Entraînez-vous par vous-même : Playground Godot