Odbij piłkę od paletki
Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 4 z 33.
Piłka przechodzi przez paletkę. Piłka jest obiektem Area2D. Jej sygnał body_entered uruchamia się, gdy dotknie jej ciało, takie jak paletka. Odbij piłkę w górę, gdy tym ciałem jest paletka:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() usuwa znak minus, więc -abs(velocity.y) zawsze wskazuje w górę. Drugie dotknięcie nie może odesłać piłki w dół.
Aby umożliwić graczowi celowanie, ustaw velocity.x na podstawie miejsca, w którym piłka uderza w paletkę. position.x - body.position.x to odległość piłki od środka paletki. Jest ujemna po lewej stronie i dodatnia po prawej. Pomnóż ją przez 5.
Wyzwanie
ŚredniW pliku ball.gd spraw, aby piłka odbijała się od paletki:
- Połącz
body_enteredz_on_body_enteredw_ready. - Gdy nazwa ciała to
Paddle, ustawvelocity.xna(position.x - body.position.x) * 5, avelocity.yna-abs(velocity.y).
Spróbuj swoich sił
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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projekty
1Projekt: Breakout
Paletka w BreakoutUtrzymaj paletkę na ekraniePoćwicz samodzielnie: Edytor online Godot