Vom Schläger abprallen
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 4 von 33.
Der Ball geht durch den Schläger hindurch. Der Ball ist ein Area2D. Sein Signal body_entered wird ausgelöst, wenn ein Körper, etwa der Schläger, ihn berührt. Lenke den Ball nach oben, wenn dieser Körper der Schläger ist:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() entfernt das Minuszeichen, sodass -abs(velocity.y) immer nach oben zeigt. Eine zweite Berührung kann den Ball nicht wieder nach unten schicken.
Damit der Spieler zielen kann, lege velocity.x anhand der Stelle fest, an der der Ball auftrifft. position.x - body.position.x ist der Abstand des Balls von der Mitte des Schlägers. Auf der linken Hälfte ist er negativ, auf der rechten positiv. Multipliziere ihn mit 5.
Aufgabe
MittelLass den Ball in ball.gd vom Schläger abprallen:
- Verbinde
body_enteredin_readymit_on_body_entered. - Wenn der Name des Körpers
Paddlelautet, setzevelocity.xauf(position.x - body.position.x) * 5undvelocity.yauf-abs(velocity.y).
Probier es selbst
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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
1Projekt: Breakout
Breakout-SchlägerDen Schläger auf dem Bildschirm haltenÜbe selbstständig: Godot-Playground