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.
Tantangan
MudahBuat setiap gem memberi tahu main.gd berapa poin nilainya:
- Deklarasikan
signal collected(points)di bagian atasgem.gd. - Di akhir
_on_body_entered, kirim sinyal itu denganpointsmilik 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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Sinyal dan Tabrakan
Latihan sendiri: Playground Godot