Menu
CoddyTech
flag Ar iconالعربيةdown icon

التحطّم عند الاصطدام

جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 10 من 63.

ما مدى شدة الاصطدام؟ تمثّل collision.relativeVelocity السرعة التي كان الجسمان يقتربان بها من بعضهما لحظة التقائهما، ويمثّل magnitude سرعة الاصطدام بوحدة م/ث. إنها الفرق بين السرعتين: سيارة سرعتها 10 م/ث تصطدم بسيارة تسير في الاتجاه نفسه بسرعة 8 م/ث، فتكون سرعة الاصطدام 2 م/ث فقط، وترى كلتا السيارتين سرعة الاصطدام نفسها.

تنكسر هذه البيضة عندما تهبط بسرعة تتجاوز crackSpeed. إذا أُسقطت من ارتفاع 1 m، تصطدم بسرعة تقارب 4.4 m/s (الجذر التربيعي لـ 2 x 9.81 x 1)، ومن ارتفاع 2 m بسرعة تقارب 6.3 m/s:

public float crackSpeed = 5f;

void OnCollisionEnter(Collision collision)
{
    if (collision.relativeVelocity.magnitude > crackSpeed)
    {
        Debug.Log("Splat!");
        Destroy(gameObject);
    }
}

لماذا لا نستخدم rb.linearVelocity الخاصة بالبيضة؟ بحلول وقت تنفيذ OnCollisionEnter، تكون الفيزياء قد عالجت الاصطدام بالفعل، لذا تكون سرعة البيضة هي ما تبقّى بعده، وهي قريبة من الصفر. تحتفظ relativeVelocity بسرعة الاصطدام نفسه. إنها سرعة، لذلك لا تؤثر الكتلة فيها: فالبيضة الثقيلة والخفيفة، عند هبوطهما بسرعة 6 m/s، تسجلان السرعة نفسها، وهي 6.

challenge icon

التحدي

سهل

تتدحرج الكرة نحو النافذة: يجعلها سهم الأعلى تتدحرج برفق، بينما يجعلها مفتاح المسافة تتدحرج بقوة (Bowler.cs، مكتوب مسبقًا). اكتب Window.cs. للنافذة strength (قيمتها 10 في نافذة Inspector).

  • تُضعف كل ضربة النافذة بمقدار سرعة اصطدامها: ضربة بسرعة 2 m/s تُنقص strength بمقدار 2.
  • عندما تصل strength إلى 0 أو أقل، تتحطم النافذة: دمّر النافذة.

اضغط Play، ودحرج بضع كرات برفق ثم كرة بقوة، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;

public class Window : MonoBehaviour
{
    public float strength = 10f;

    // كل ضربة تُنقص سرعة ارتطامها من strength؛ وعندما تصل إلى 0 تتحطم النافذة
}
quiz iconاختبر نفسك

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

جميع دروس الفيزياء وأسلوب اللعب