Menu
CoddyTech

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.

challenge icon

Görev

Orta

Topun raketten sekmesini sağla.

  1. ball.gd içinde, _ready işlevinde body_entered sinyalini _on_body_entered işlevine bağla.
  2. Gövdenin adı Paddle olduğunda, velocity.x değerini (position.x - body.position.x) * 5 ve velocity.y değ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