Menu
CoddyTech
flag He iconעבריתdown icon

שבירת הלבנים

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

הכדור עובר דרך הלבנים. גם הלבנים הן גופים, וכל אחת מהן נמצאת בקבוצה bricks. is_in_group מבחין בין לבנה לבין המחבט.

לכל לבנה יש פונקציית smash(). היא מנפצת את הלבנה לניצוצות ומסירה אותה.

elif body.is_in_group("bricks"):
	body.smash()

לאחר מכן הכדור ניתז הרחק מאמצע הלבנה: למטה אם הוא נמוך מהלבנה, ולמעלה אם הוא גבוה ממנה. הכדור יכול לפגוע בלבנה מלמעלה לאחר שעבר דרך פתח.

if position.y > body.position.y:
	velocity.y = abs(velocity.y)
else:
	velocity.y = -abs(velocity.y)

אל תהפכו את velocity.y. אם הכדור נוגע בשתי לבנים בבת אחת, שתי הפיכות מתבטלות זו בזו.

challenge icon

אתגר

בינוני

ב־_on_body_entered, הוסף elif עבור גופים בקבוצה bricks:

  1. קרא ל־body.smash().
  2. הקפץ את הכדור כלפי מטה אם הוא מתחת לאמצע הלבנה, וכלפי מעלה אם הוא מעליו.

נסו בעצמכם

extends Area2D

var velocity = Vector2(110, -280)

func _ready():
	body_entered.connect(_on_body_entered)

func _physics_process(delta):
	position += velocity * delta
	if position.x < 8 or position.x > 632:
		velocity.x = -velocity.x
	if position.y < 42:
		velocity.y = -velocity.y

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.x = (position.x - body.position.x) * 5
		velocity.y = -abs(velocity.y)
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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