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.
Défi
MoyenDans ball.gd, fais rebondir la balle sur la raquette :
- Connecte
body_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).
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
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
1Projet : Breakout
Raquette de BreakoutGarder la raquette à l’écranEntraînez-vous par vous-même : Playground Godot