Menu
CoddyTech
flag Ar 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المشاريع

تدرّب بنفسك: Playground لـ Godot