Menu
CoddyTech

התנגש בצינורות

חלק מהיחידה פרויקטים במסלול ה-Godot של Coddy. שיעור 26 מתוך 36.

פגיעה בצינור או בקרקע אמורה לסיים את המשחק. בשני המקרים מופעלת פונקציה אחת ב־main.gd:

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

צינור. הצינור הוא Area2D עם שתי צורות, החצי העליון והחצי התחתון. לרווח אין צורה. ב־pipe.gd, חברו את body_entered ושדרו אות hit. main.gd מחבר את hit של כל צינור חדש לפני הוספתו.

הקרקע. החלק העליון שלה נמצא ב־y = 318. קצהו של המעופף נמצא במרחק 12 פיקסלים ממרכזו, ולכן הוא נוגע בקרקע כאשר position.y גדול מ־306. אז flyer.gd משדר את crashed.

המעופף, הצינורות והטיימר מוגדרים כניתנים להשהיה, כך שההשהיה עוצרת את כולם.

challenge icon

אתגר

קשה

סיימו את המשחק כשהדמות מתרסקת.

  1. בקובץ pipe.gd, הוסיפו signal hit, חברו את body_entered בתוך _ready ופלטו את hit כשגוף נכנס.
  2. בקובץ flyer.gd, הוסיפו signal crashed ופלטו אותו כאשר position.y גדול מ־306.
  3. בקובץ main.gd, חברו את hit של כל צינור ואת crashed של הדמות המעופפת אל _on_crash, שמציגה את Game Over ומושהית את המשחק.

לחצו על „שחק” ונפלו: ההודעה Game Over תופיע. לאחר מכן לחצו על „בדיקה”.

נסו בעצמכם

extends Node2D

const PIPE = preload("res://pipe.tscn")

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	$Pipes.add_child(pipe)

כל השיעורים ביחידה פרויקטים

תרגלו בעצמכם: Godot אונליין