بناء البرج
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 67 من 67.
تنزلق رافعة ذهابًا وإيابًا فوق قاعدة. يؤدي كل ضغط على مفتاح المسافة، أو كل نقرة، إلى إسقاط كتلة عموديًا من الرافعة. تبقى الكتلة التي تهبط فوق الرصة في مكانها، ويجب أن تهبط الكتلة التالية عليها. أما الكتلة التي لا تصيب الرصة فتسقط بعيدًا. ارتفاع الرصة هو النتيجة.
اكتب اللعبة كاملةً في سكربت واحد، Crane، على الرافعة.
التحدي
صعباكتب النص البرمجي Crane على Crane. يعيّن Inspector كلاً من blockPrefab (الـ prefab الخاص بـ Block)، وtop (القاعدة، أي أعلى نقطة في البرج حتى الآن)، وcraneSpeed (3)، وcraneEdge (4)، وfallSpeed (7).
- ينزلق الرافعة على طول المحور x بسرعة
craneSpeedوحدة في الثانية. بعد تجاوزcraneEdge، يعود إلى اليسار، وبعد تجاوز-craneEdge، يعود إلى اليمين. - يُسقط الضغط على Space أو النقر بزر الفأرة الأيسر Block عند إحداثي x الخاص بالرافعة، على بُعد وحدة واحدة أسفل الرافعة. أثناء سقوط كتلة، لا تفعل الضغوطات الإضافية شيئًا.
- تتحرك الكتلة الساقطة إلى الأسفل بسرعة
fallSpeedوحدة في الثانية. - عندما يصل إحداثي y الخاص بها إلى إحداثي y الخاص بـ
topزائد 1، ويكون إحداثي x الخاص بها على بُعد أقل من 1 من إحداثي x الخاص بـtop، فإنها تهبط: اضبط إحداثي y الخاص بها على إحداثي y الخاص بـtopزائد 1 بالضبط، واجعلهاtopالجديدة، وسجّل ارتفاع البرج بالشكلStack: 1وStack: 2وهكذا. - تواصل الكتلة التي لا تهبط السقوط. أسفل y = -3، أتلفها وسجّل
Missed!.
اضغط على Play وابنِ برجًا، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class Crane : MonoBehaviour
{
[SerializeField] private GameObject blockPrefab;
[SerializeField] private Transform top;
[SerializeField] private float craneSpeed = 3f;
[SerializeField] private float craneEdge = 4f;
[SerializeField] private float fallSpeed = 7f;
void Update()
{
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر