Menu
CoddyTech

Faire rebondir la balle sur la raquette

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

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 dans la moitié gauche et positive dans la moitié droite. Multipliez-la par 5.

challenge icon

Défi

Moyen

Fais rebondir la balle sur la raquette.

  1. Dans ball.gd, 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).

Appuie sur « Jouer » et rattrape la balle : elle repart vers le haut, en direction du côté qu’elle a touché. Puis appuie sur « Vérifier ».

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

Toutes les leçons de Projets

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