الارتداد عن المضرب
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 4 من 33.
تمر الكرة عبر المضرب. الكرة عبارة عن 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مشروع: Breakout
مضرب Breakoutإبقاء المضرب على الشاشة2مشروع: مطلق النار على الكويكبات
أدر السفينةأشعل المحركتدرّب بنفسك: Playground لـ Godot