Menu
CoddyTech

مدى المدفع

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

يوجد مدفع عند أحد طرفَي ميدان الرماية، وتتحرك ثلاثة أهداف ذهابًا وإيابًا عبر الميدان على مسافات مختلفة. أملِ البرميل إلى أعلى وأسفل للوصول إلى كل مسافة، وأطلِق كل طلقة في الوقت الذي يعبر فيه هدفٌ خط النار. الكرة التي تصيب هدفًا تُخرجه من الميدان وتُستهلك؛ أما أي شيء آخر يصطدم بهدف فيتركه دون أن يتأثر. الأهداف أجسام حركية، لذا لا تدفعها الاصطدامات أبدًا، ويحمل المدفع خمس كرات.

اكتب نصَّين برمجيَّين: Cannon على البرميل وTarget على كل هدف.

challenge icon

التحدي

صعب

اكتب مدفعًا: وجّهه، ثم أطلق خمس كرات.

  1. في Update()، أضف Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime إلى angle، وقيّده بين 10 و60، واضبط transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. عند الضغط على Space بينما balls > 0، أنشئ ballPrefab عند transform.position + transform.forward، وطبّق AddForce(transform.forward * power, ForceMode.Impulse).
  3. أنقص 1 من balls وسجّل "Balls left: " + balls.

اضغط «العب» وأطلق. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class Cannon : MonoBehaviour
{
    [SerializeField] private Rigidbody ballPrefab;
    [SerializeField] private float angle = 30f;
    [SerializeField] private float turnSpeed = 40f;
    [SerializeField] private float power = 30f;
    [SerializeField] private int balls = 5;

    void Update()
    {
        // صوّب باستخدام سهمَي الأعلى والأسفل، وأطلق النار باستخدام Space
    }
}

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

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