Menu
CoddyTech

ارتداد الكرة عن المضرب

جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 4 من 36.

تمر الكرة عبر المضرب. الكرة هي Area2D. تنطلق إشارتها body_entered عندما يلمسها جسم، مثل المضرب. وجّه الكرة إلى الأعلى عندما يكون ذلك الجسم هو المضرب:

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.y = -abs(velocity.y)

تحذف abs() إشارة الناقص، لذا فإن -abs(velocity.y) يشير دائمًا إلى الأعلى. ولا يمكن للمسة ثانية أن تعيد الكرة إلى الأسفل.

للسماح للاعب بتوجيه الكرة، عيّن velocity.x وفقًا لموضع اصطدام الكرة. تمثل position.x - body.position.x بُعد الكرة عن منتصف المضرب. تكون سالبة في النصف الأيسر وموجبة في النصف الأيمن. اضربها في 5.

challenge icon

التحدي

متوسط

اجعل الكرة ترتد عن المضرب.

  1. في ball.gd، اربط body_entered بـ _on_body_entered في _ready.
  2. عندما يكون اسم الجسم Paddle، اضبط velocity.x على (position.x - body.position.x) * 5 وvelocity.y على -abs(velocity.y).

اضغط على «العب» والتقط الكرة: ستطير إلى الأعلى مجددًا، باتجاه الجانب الذي اصطدمت به. ثم اضغط على «تحقق».

جرّب بنفسك

extends Area2D

var velocity = Vector2(110, -280)

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

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

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