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.
Défi
MoyenFais rebondir la balle sur la raquette.
- Dans
ball.gd, connectebody_enteredà_on_body_entereddans_ready. - Lorsque le nom du corps est
Paddle, définisvelocity.xsur(position.x - body.position.x) * 5etvelocity.ysur-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
1Projet : Casse-briques
La raquetteGarder la raquette à l’écranEntraînez-vous par vous-même : Playground Godot