אותות עם ערכים
חלק מהיחידה אותות והתנגשויות במסלול ה-Godot של Coddy. שיעור 8 מתוך 27.
אות יכול להעביר ערכים, כמו שהאות body_entered מעביר את הגוף. מציינים אותם בסוגריים מרובעים כשמכריזים עליו:
signal collected(points)מעבירים את הערכים אל emit(), באותו הסדר:
collected.emit(points)כל פונקציה שמחוברת אל collected מקבלת את הערך. כאן הסקריפט שעל Main מוסיף את הנקודות לניקוד ומדפיס אותו:
func _on_gem_collected(points):
score += points
print("Score: ", score)שתי אבני החן מריצות את אותו הסקריפט. הערך של points באבן החן הקטנה הוא 10, ובגדולה הוא 25; הערכים נקבעים בכל צומת בסצנה. לכן מעבירים את points, ולא מספר שמקלידים.
אתגר
קלגרום לכל אבן חן לספר ל־main.gd כמה נקודות היא שווה.
- הכרז על
signal collected(points)בראש הקובץgem.gd. - בסוף
_on_body_entered, שלח אותו עםpointsשל אבן החן.
לחץ על "שחק" ועבור על פני שתי אבני החן: המסוף מציג Score: 10, ואז Score: 35. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
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
כל השיעורים ביחידה אותות והתנגשויות
תרגלו בעצמכם: Godot אונליין