Menu
CoddyTech

المضرب

الدرس 1 من 19 في دورة لعبة Unity: كاسر الطوب على Coddy.

في هذه الدورة تبني لعبة كسر الطوب ثلاثية الأبعاد، وهي ميزة من الدرس: مضرب، وكرة مرتدة، وجدار من الطوب، وأرواح، ومستويات، ومعززات قوة. تتحرك جميع العناصر في المستويين x وy عند z 0. النصوص البرمجية Paddle وBall وBrick وGameManager وPowerUp هي هياكل أولية في الوقت الحالي. يؤدي الزر «العب» إلى بدء اللعبة؛ ويقيّم الزر «تحقق» الحل.

للمضرب مكوّن Rigidbody حركي، ويُحرّك باستخدام rb.MovePosition في FixedUpdate()، لكي تلاحظ الفيزياء حركته. يمر الجسم الحركي عبر الجدران، لذا يُبقيه النص البرمجي داخلها. لو حُدّد موضع مركز المضرب عند الجدار، لبقي نصفه داخله: الحد هو موضع الجدار ناقص نصف العرض. إذا كان موضعا الجدارين -6 و6 وكان عرض المضرب 2:

float half = 2f / 2f;
target.x = Mathf.Clamp(target.x, -6f + half, 6f - half);
rb.MovePosition(target);

يبقى المركز بين -5 و5، لذا تتوقف الحافتان تمامًا عند الجدارين. إن قراءة العرض من transform.localScale.x في كل خطوة تُبقي الحد صحيحًا إذا ازداد حجم المضرب.

challenge icon

التحدي

سهل

حرّك المضرب بين الجدارين.

  1. في Paddle's FixedUpdate()، اجعل float input: -1 عند الضغط على سهم اليسار أو A، و1 عند الضغط على سهم اليمين أو D، وإلا فاجعله 0.
  2. احسب Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime;
  3. باستخدام float half = transform.localScale.x / 2f;، احصر target.x بين -wallX + half وwallX - half، ثم نفّذ rb.MovePosition(target);

اضغط «العب» وانزلق حتى تصطدم بالجدارين: سيتوقف المضرب عند كلٍّ منهما. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;
using UnityEngine.InputSystem;

public class Paddle : MonoBehaviour
{
    public float speed = 14f;
    public float wallX = 8f;   // تقع الأوجه الداخلية للجدارين الجانبيين عند -wallX وwallX

    Rigidbody rb;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        // تحرّك باستخدام مفاتيح الأسهم أو A وD، وابقَ بين الجدارين.
    }
}

جميع دروس لعبة Unity: كاسر الطوب

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