Menu
CoddyTech

Üç Can

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

Bekçiye dokunmak bir can kaybettirmeli. Üst çubuktaki üç can Heart1, Heart2 ve Heart3, $HUD/Hearts düğümünün çocuklarıdır. Bekçi bir Area2D olduğundan, kahramana dokunduğunda body_entered tetiklenir:

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false

get_child(i), bir düğümün çocuğunu sıfırdan başlayarak sayılan sırasına göre verir. İlk darbeyi aldıktan sonra health değeri 2 olur ve get_child(2), Heart3 olur. Canlar sağdan başlayarak kaybolur.

body_entered her dokunuşta bir kez tetiklenir. Bekçinin yolunda kalan bir kahraman, bekçi geri geldiğinde her seferinde bir can kaybeder.

challenge icon

Görev

Orta

Muhafızın kahramandan bir can götürmesini sağla.

  1. main.gd dosyasına var health = 3 ekle ve $Enemy.body_entered sinyalini bağla.
  2. Her dokunuşta health değerini bir azalt, ardından $HUD/Hearts.get_child(health) öğesini gizle.

“Oyna” düğmesine bas ve muhafıza dokun: en sağdaki kalp gider. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends Node2D

var has_key = false

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)
	$DoorZone.body_entered.connect(_on_door_zone_body_entered)

func _on_key_body_entered(body):
	has_key = true
	$Key.queue_free()
	$HUD/KeyIcon.visible = true

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

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

Kendi başına pratik yap: Godot playground