ارتداد الكرة عن المضرب
جزء من قسم المشاريع في رحلة 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.
التحدي
متوسطاجعل الكرة ترتد عن المضرب.
- في
ball.gd، اربطbody_enteredبـ_on_body_enteredفي_ready. - عندما يكون اسم الجسم
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
جميع دروس المشاريع
1المشروع: بريك أوت
مضرب بريك أوتإبقاء المضرب داخل الشاشةتدرّب بنفسك: Playground لـ Godot