Raketten Sekme
Coddy'nin Godot Journey'sinin Projeler bölümünün bir parçası. Ders 4 / 36.
Top raketin içinden geçiyor. Top bir Area2D'dir. body_entered sinyali, raket gibi bir gövde topa dokunduğunda tetiklenir. Gövde raketse topu yukarı döndür:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() eksi işaretini kaldırır, bu nedenle -abs(velocity.y) her zaman yukarı yönü gösterir. İkinci bir temas topu tekrar aşağı gönderemez.
Oyuncunun nişan alabilmesi için velocity.x değerini topun çarptığı noktaya göre ayarla. position.x - body.position.x, topun raketin ortasına olan uzaklığıdır. Sol yarıda negatif, sağ yarıda pozitiftir. Bunu 5 ile çarp.
Görev
OrtaTopun raketten sekmesini sağla.
ball.gdiçinde,_readyişlevindebody_enteredsinyalini_on_body_enteredişlevine bağla.- Gövdenin adı
Paddleolduğunda,velocity.xdeğerini(position.x - body.position.x) * 5vevelocity.ydeğerini-abs(velocity.y)olarak ayarla.
“Oyna” düğmesine bas ve topu yakala: Top yukarıya, çarptığı tarafa doğru geri uçar. Ardından “Kontrol et” düğmesine bas.
Kendin dene
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
Projeler bölümündeki tüm dersler
Kendi başına pratik yap: Godot playground