Menu
CoddyTech

Tuğlaları Kır

Coddy'nin Godot Journey'sinin Projeler bölümünün bir parçası. Ders 6 / 36.

Top tuğlaların içinden geçiyor. Tuğlalar da cisimdir ve her biri bricks grubundadır. is_in_group, bir tuğlayı raketten ayırt eder.

Her tuğlanın bir smash() işlevi vardır. Tuğlayı kıvılcımlara dönüştürerek patlatır ve tuğlayı kaldırır.

elif body.is_in_group("bricks"):
	body.smash()

Ardından top, tuğlanın orta noktasından uzaklaşacak şekilde seker: tuğladan daha aşağıdaysa aşağı, daha yukarıdaysa yukarı. Top, bir boşluktan geçtikten sonra tuğlaya üstten çarpabilir.

if position.y > body.position.y:
	velocity.y = abs(velocity.y)
else:
	velocity.y = -abs(velocity.y)

velocity.y değerinin yönünü tersine çevirme. Top aynı anda iki tuğlaya dokunursa, iki kez yön değiştirmesi birbirini götürür.

challenge icon

Görev

Orta

Topun tuğlaları kırmasını sağla.

  1. _on_body_entered içinde, bricks grubundaki gövdeler için bir elif ekle.
  2. body.smash() çağrısını yap.
  3. Top tuğlanın orta noktasının altındaysa aşağı, üstündeyse yukarı sektir.

“Oyna” düğmesine bas: tuğlalar teker teker patlar. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends Area2D

var velocity = Vector2(110, -280)

func _ready():
	body_entered.connect(_on_body_entered)

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

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.x = (position.x - body.position.x) * 5
		velocity.y = -abs(velocity.y)

Projeler bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground