Menu
CoddyTech

Sinyal dengan Nilai

Termasuk bagian Sinyal dan Tabrakan dalam perjalanan Godot di Coddy. Pelajaran 8 dari 27.

Sebuah sinyal dapat membawa nilai, seperti body_entered yang membawa body. Cantumkan nilai-nilai tersebut dalam tanda kurung saat kamu mendeklarasikannya:

signal collected(points)

Berikan nilai-nilai tersebut ke emit(), dengan urutan yang sama:

collected.emit(points)

Setiap fungsi yang terhubung ke collected menerima nilainya. Di sini, script pada Main menambahkan poin ke skor dan mencetaknya:

func _on_gem_collected(points):
	score += points
	print("Score: ", score)

Kedua gem menjalankan script yang sama. points pada gem kecil bernilai 10 dan pada gem besar bernilai 25, yang ditetapkan pada setiap node di Inspector. Jadi, kirim points, bukan angka yang kamu ketik.

challenge icon

Tantangan

Mudah

Buat setiap gem memberi tahu main.gd berapa poin nilainya:

  1. Deklarasikan signal collected(points) di bagian atas gem.gd.
  2. Di akhir _on_body_entered, kirim sinyal itu dengan points milik gem.

Berjalanlah melewati kedua gem. Console akan menampilkan Score: 10, lalu Score: 35.

Coba sendiri

extends Area2D

@export var points = 10

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if not visible:
		return
	visible = false
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Sinyal dan Tabrakan

Latihan sendiri: Playground Godot