‫إذا كان هناك شيء واحد هو أهم شيء لعداء لانهائي ، فهو لانهائي.
‫ولكي نخلق عالمًا لا نهائيًا ، نحتاج إلى إنشاء إجرائي.
‫نحتاج إلى إنشائه من الناحية الإجرائية ، مما يعني أننا بحاجة إلى القيام بذلك عبر الكود ، عبر الكود.
‫لذلك لا نريد إنشاء عالم ضخم ، لا أعرف ، مليار قطعة مختلفة من عناصر الطرق أو أجزاء
‫الطرق.
‫نريد أن نفعل ذلك برمجيًا ، ويمكننا أن نفعل ذلك بطريقة إجرائية.
‫لذا ما أريد فعله الآن هو ، أولاً وقبل كل شيء ، أريد أن أقوم بإعداد بلورتي وأريد تغيير البلورة
‫، لا أن أكون في مكان ما في العالم أو في أي مكان أضعه فيه.
‫أريدك أن تكون على طريق.
‫لذلك دعونا نضع بلورتنا ، هذه هنا.
‫دعنا نضعها على مساراتنا في الطريق.
‫لذلك دعونا ، بالمناسبة ، نتخلص من كل البلورات الأخرى.
‫حذف.
‫أيضًا ، دعنا نتخلص من حذف أجزاء الطريق أيضًا.
‫والآن دعونا نسحب تلك البلورة إلى لعبتنا.
‫لنفترض أن هذا الوضع جيد تقريبًا.
‫دعنا نرى ما إذا كان فقط في المقدمة.
‫فقط في القمة.
‫نعم ، لا بأس.
‫لذلك هذا جيد.
‫وأريد أن أضع الكريستال على جزء الطريق ، وسأقوم الآن بإلغاء تنشيط البلورة.
‫حتى الآن ، كما ترى ، لم يعد متاحًا بعد الآن.
‫سيتعين علينا تفعيله.
‫والآن سيكون جزء الطريق هذا عبارة عن مبنى جاهز جديد.
‫لذلك دعونا نسحب جزء الطريق هذا إلى مجلد المباني الجاهزة الخاصة بنا ونريد إنشاء العديد من أجزاء الطريق هذه من الناحية
‫الإجرائية لاحقًا.
‫حسنا.
‫قبل أن نفعل ذلك ، هناك جزء أساسي من لعبتنا سيكون دائمًا هو نفسه.
‫لذلك سيكون هذا طريقنا بطريقة معينة.
‫بالمناسبة ، دعونا نتخلص من البلورات أيضًا.
‫والآن يمكننا نسخ البلورة ودعنا نحركها وفقًا لذلك.
‫لذا فإن الخطوات العديدة الأولى هي نفسها دائمًا ، ثم ننتقل إلى الجانب.
‫لذا فإن هذه القطعة ستكون هي نفسها دائمًا.
‫لذلك دعونا نلقي نظرة على عرض اللعبة.
‫نعم ، دائما نفس الشيء.
‫إنهم دائمًا ما يتحركون هكذا.
‫والتالية.
‫حسنا.
‫والآن هذه هي بداية خريطتنا.
‫والآن نريد أن نمضي قدمًا ونجعل الأمر إجرائيًا بحيث يتم إنشاء القطع تلقائيًا
‫وبشكل لا نهائي.
‫ومن أجل القيام بذلك ، دعنا ننشئ نصًا جديدًا لطريقنا.
‫لذلك دعونا نذهب إلى طريقنا ، ونضيف مكونًا ونصًا جديدًا ، ودعنا نسمي هذا الطريق.
‫الآن دعنا نفتحه واحدًا وهنا سنحتاج إلى مصنعنا الجاهز للإصلاح ، لذلك دعونا نقوم بتعيين هذا المسار السريع الحقيقي في الوحدة ، لذا سيحتاج البرنامج
‫النصي للطريق إلى مبنى جاهز للطريق ، فلنقم بسحب البرنامج النصي ، بالمناسبة إلى مجلد البرنامج النصي
‫الخاص بنا.
‫الآن دعنا نذهب إلى.
‫كتب ويحتاج الآن إلى نص الطريق أو كائن لعبة جزء الطريق.
‫حسنًا ، ها نحن ذا.
‫أو الجاهزة؟
‫علم.
‫حسنا.
‫بعد ذلك ، سنحتاج إلى معرفة من أي نقطة فصاعدًا نريد إنشاء عالمنا؟
‫لذلك لدي خطأ هنا.
‫جزء الدور 11 غير مطلوب ، لذلك دعونا نحذف ذلك.
‫لذا.
‫لذا من الطريق رقم 10 فصاعدًا ، أريد أن أستمر في إنشاء أجزاء جديدة من الطريق.
‫إذن من هذه النقطة فصاعدًا.
‫لذلك أحتاج إلى الوظيفة عندما أريد إنشاء أجزاء طريق جديدة.
‫الموضع هو الموضع أو موضع التحويل لجزء الطريق الخاص بنا.
‫وإذا ألقينا نظرة عليه ، ستجده في الموضع 007. 09 فلنتحقق من
‫هذا الموقف.
‫سأقوم بسحبه مرة أخرى في نص الطريق الخاص بنا.
‫أريد أن أحصل على هذا المنصب.
‫لذلك سأقوم بإنشاء ناقل عام جديد بثلاثة مشاركة أخيرة ، لذلك سأسميها وسأضيفها
‫هنا.
‫لذلك كان 007. 9 أو تسعة.
‫كان هذا هو موقف آخر جزء من الطريق.
‫الآن ما نحتاج إلى معرفته هو مقدار ما نحتاجه لتحريك جسم ما.
‫إذن ، جزء الطريق هذا ، دعنا نضعه في الخارج والآن دعنا نحركه أو نكرر قوة الطريق
‫هذه ونحركها مع التحكم والتحول.
‫وبعد ذلك يمكننا أن نرى أنه يتحرك بمقدار 0. 707.
‫هذا إلى حد كبير عرض أو تغيير موضع الكتلة ، ويجب أن يكون العرض
‫أيضًا.
‫حسنا.
‫لذا دعنا نعود إلى نص الطريق الخاص بنا وهنا سنحتاج إلى معرفة هذا الإزاحة.
‫لذلك دعونا ننشئ إزاحة تعويم عامة جديدة وهي 0. 707 كتعويم.
‫والآن لنقم بإنشاء طريقة.
‫سأتخلص من طريقة البداية.
‫سأقوم بإنشاء طريقة جديدة ، فراغ عام ، إنشاء جزء طريق جديد.
‫وسأقوم الآن بتصحيح سجل تصحيح الأخطاء ، وإنشاء جزء طريق جديد.
‫وضمن طريقة التحديث ، سوف أتحقق مما إذا كان المستخدم يضغط على زر.
‫لذا ، أدخل نقطة الحصول على المفتاح وما هو رمز المفتاح الذي أريده.
‫مساحة نقطة رمز المفتاح.
‫لذلك عندما يضغط اللاعب على المساحة ، أريد إنشاء جزء طريق جديد.
‫دعنا نذهب مع ذلك الآن.
‫لذلك دعونا ننشئ هذه الطريقة إلى أبعد من ذلك.
‫لذلك قم بإنشاء جزء طريق جديد.
‫ماذا نحتاج هنا؟
‫علينا أن نفرخ الموضع ، وهو المتجه ثلاثة.
‫لذلك دعونا نسميها متجه نشر النشر 3. 0 ، وهو الموضع 000.
‫إذن هذا هو موضع التكاثر من حيث نبدأ ، ثم نريد الحصول على فرصة ، وهي متغير
‫نطاق عشوائي بين صفر و 100.
‫وإذا كانت الفرصة أقل من 50 ، فأنا أرغب في التكاثر إلى اليسار وإلا فإنني أرغب في التكاثر إلى اليمين.
‫لذلك إذا كانت الفرصة أقل من 50 ، فأنا أريد الحصول على تعويض إيجابي وإلا أريد الحصول على تعويض سلبي.
‫لذا سيكون موضع التفرخ هو المتجه الجديد ثلاثة ، وهو آخر موضع النقطة x زائد الإزاحة
‫والموضع Y الأخير.
‫حتى آخر مشاركة في Y.
‫ثم أخيرًا آخر مشاركة ، ولكن z بالإضافة إلى الإزاحة.
‫هذا يعني أنه سيحرك لدينا أو سينشئ موضع تفرخ وهو متجه ثلاثة أو
‫سيعين موضع التفرخ ، وهو متجه ثلاثة ، وسنستخدم ذلك لاحقًا لنشر كائن لعبتنا
‫، وهو طريقنا قطعة أو جزء من الطريق.
‫وإلا أريد أن يكون موضع التفرخ مساويًا للمتجه الجديد الثالث الأخير x ناقص الإزاحة.
‫آخر مشاركة Y وآخر مشاركة z بالإضافة إلى.
‫الآن دعنا نمضي قدمًا وننشئ كائن اللعبة.
‫سأسميها G ، وقم بتجسيدها حتى نقوم بإنشائها داخل مبنى الوحدة العالمية الخاص بالطريق العالمي
‫وفي أي موضع أثناء وضع التفرخ وأي معيار نريد الحصول عليه.
‫نستخدم المعيار dot ular ، مما يعني أننا نديره بصفر. 45 و صفر لأن كائنات لعبتنا يتم تدويرها أيضًا ونريد
‫تدوير طرقنا ونريد تدويرها هنا أيضًا.
‫والآن نحتاج إلى الموضع الأخير أو نحتاج إلى تعيين الموضع الأخير ، وهو g لتحويل الموضع.
‫لأن هذا هو المنصب الجديد ، أليس كذلك؟
‫نحتاج إلى معرفة الموضع الأخير لكائن لعبتنا الجديد.
‫لذلك بدأنا بالموضع الأخير الذي قمنا بإعداده يدويًا والآن نقوم دائمًا بإعداده مع الموضع الذي
‫تم إنشاؤه.
‫لذلك فإن الجزء الجديد من الطريق له موضع محدد ونحن نحفظه في آخر متغير آخر.
‫حسنًا ، لنجرب ذلك.
‫عدت إلى الوحدة وقمت بإنشاء الشاشة المنقسمة.
‫من المنطقي هنا لأن ما نريد رؤيته هو ما يحدث في المشهد.
‫لذا دعني أتخلص من الصوت الحقيقي بسرعة ، على الرغم من أنه رائع.
‫الآن دعنا ننتقل إلى عرض اللعبة والآن دعنا نضغط على مفتاح المسافة.
‫وكما ترون هنا في عرض المشهد ، فقد تم إنشاء عالمنا الآن بناءً على علامات التبويب الخاصة بنا ، ولكن بالطبع نريد
‫أن يحدث ذلك ، وليس بناءً على نقرنا طوال الوقت.
‫نريد أن يحدث ذلك بناءً على الموقف الذي لدينا.
‫الآن دعنا نعود إلى البرمجة النصية.
‫لذلك دعونا ننشئ هذا تلقائيًا.
‫دعنا نستخدم طريقة التنبيه الفراغي الخاص هنا ودعنا نستدعي التكرار أو لنسمي الطريقة ، إبطال التكرار.
‫وماذا نريد استدعاء التكرار؟
‫حسنًا ، طريقة إنشاء جزء طريق جديد ونريد أن نفعل ذلك بعد 1/2 ونريد أن نفعل ذلك كل ثانية.
‫لذلك دعونا فقط نجرب ذلك.
‫دعونا نحفظ اللعبة ونرى ما سيحدث الآن.
‫لذلك دعونا نجرب ذلك.
‫ويمكننا أن نرى كل ثانية يتم إنشاء جزء طريق جديد.
‫حسنا.
‫لكن هذا ليس بالضبط ما نريده.
‫لا نريد أن يتم إنشاؤها عندما نكون مستيقظين ، لأن ما يمكن أن يحدث الآن هو أننا لم نبدأ
‫اللعبة وهي تعمل فقط وما زلنا نخلق عالمًا ضخمًا كل ثانية.
‫لكن ما نريد القيام به هو فقط إذا بدأت اللعبة ، فنحن نريد إنشاءها.
‫فكيف لنا أن نفعل ذلك؟
‫حسنًا ، لا نستخدم طريقة الاستيقاظ هنا ، لكننا نستخدم طريقة مختلفة
‫، والتي سننشئ طريقة مختلفة نسميها بدء البناء.
‫ولن تكون خاصة بل عامة لأننا نريد الوصول إليها من مدير لعبتنا.
‫وبالطبع لن نحتاج إلى طريقة التحديث الآن بعد الآن مع المفتاح لأسفل حيث نقوم بإنشاء
‫أجزاء طريق جديدة بناءً على الضغط على المفتاح.
‫لذلك دعنا ننتقل إلى مدير اللعبة وننتقل إلى طريقة بدء اللعبة ، لأننا هنا نبدأ اللعبة
‫وهذه نقطة مثالية لإنشاء تلك الكائنات.
‫فلنجد كائنًا من النوع ودعنا نجد جسم الطريق.
‫وهناك كان لدينا طريقة تسمى بدء البناء ، وهي الطريقة التي نريد تسميتها.
‫حسنًا ، دعنا نمضي قدمًا ونختبر ذلك.
‫لذلك دعنا نذهب إلى لعبتنا وأحصل على استثناء مرجعي فارغ.
‫وهذا يتعلق بي لعدم وجود مدير للعبة بعد الآن.
‫لذلك دعونا نلقي نظرة على كيفية تغيير ذلك.
‫لنقم بإنشاء مدير لعبة جديد.
‫إذا كان هذا هو الحال بالنسبة لك أيضًا ، فسوف أقوم بإنشاء مدير لعبة هنا وسأقوم
‫بالسحب أو سأقوم بإعادة تعيين ذلك أولاً هنا وسحب مدير اللعبة هنا لأنه لأي سبب من الأسباب ، اختفى .
‫لذا سأحفظ المشهد الآن.
‫وقبل أن نختبر ذلك ، بالطبع ، نحتاج إلى تعيين نص النتيجة ونص الدرجة العالية.
‫لذلك دعونا نفعل ذلك.
‫والآن دعنا نحاول مرة أخرى.
‫الآن ، لا يجب أن نحصل على الخطأ.
‫حسنًا ، لقد عدنا الآن إلى المسار الصحيح.
‫بطريقة ما يجب أن أكون قد حذفته.
‫الآن دعونا نجربها.
‫أوه ، دعنا نجربها.
‫دعونا نبدأ اللعبة.
‫وكما ترى ، تم إنشاء اللعبة من الناحية الإجرائية هناك في الخلف وهي بطيئة بعض الشيء.
‫لذلك نحن أسرع من لعبتنا في صنع تلك القطع.
‫لذلك دعونا ننشئ أجزاء طريق جديدة بشكل أسرع قليلاً.
‫بالمناسبة ، على سبيل المثال ، يمكننا إنشاء كل 0. 5 ثوان ، لذلك دعونا نفعل ذلك 0. 5 F الآن هذا يجب أن يحل هذه المشكلة.
‫أعتقد أن الفاصل الزمني جيد.
‫لنلقي نظرة.
‫لنبدأ اللعبة ونرى ما إذا كانت تخلق ما يكفي.
‫ومع ذلك ، فإن ما لا يعجبني هو أنه لا يزال بإمكاني رؤية كيفية إنتاج هذه القطع.
‫حسنًا ، لقد سقطت الآن ، وهذا يعني أن كيف يمكنني حلها بسيط جدًا.
‫يمكنني ببساطة.
‫دعنا نتخلص من هذا الطريق هنا وتلك.
‫حسنًا ، أحتاج ذلك.
‫دعونا نعيدها إلى طريقنا.
‫يمكنني ببساطة نسخ هذه القطعة هنا ونقلها إلى أبعد من ذلك.
‫في الواقع ، دعنا ننقلها هنا.
‫قم بتكرارها مرة أخرى.
‫لذلك يمكنني ببساطة أن أجعل العالم أكبر قليلاً.
‫لذلك دعونا الآن نحفظ ذلك.
‫والآن لا يجب أن أرى أين تم إنشاؤه بعد الآن.
‫لذلك دعونا نبدأ اللعبة.
‫والآن ، بالطبع ، لدينا مشكلة هنا وهي أنه ليس لدينا نقطة النهاية الصحيحة بعد الآن لأنه أين
‫كانت؟
‫يحتاج طريقنا إلى المركز الأخير.
‫إذن ، إزاحة الموضع الأخير ويجب أن تكون هذه هنا الآن.
‫لذا فإن الجزء 14 من الطريق الآن هو الأخير.
‫لذلك دعونا نغير القيم هنا ونأخذ قيمة Z أيضًا من طريقنا وندخلها هنا.
‫حسنًا ، لنحاول الآن مرة أخرى.
‫دعونا نرى أين يتم إنشاء القطع.
‫وكما ترى ، فقد تم إنشاؤها في الموضع الصحيح.
‫في احسن الاحوال.
‫والآن لا أرى أين تم إنشاء عالمي.
‫وأعتقد 0. يجب أن تكون 5 ثوانٍ جيدة لأنها الآن تصنع أسرع مما أستطيع المشي.
‫تمام.
‫هذا جيد.
‫الآن دعونا نضيف البلورات مرة أخرى ، لأنه ليس لدينا بلورات.
‫ماذا الآن؟
‫نريد بلوراتنا.
‫لذلك دعنا ننتقل إلى نص الطريق الخاص بنا.
‫وهنا في جزء الإنشاء الجديد ، نريد الحصول على بلورة كل خطوة خامسة أو كل طريق خامس.
‫لذلك دعونا ننشئ عددًا خاصًا للطرق ، وهو صفر ، ولنزيد عدد الطرق لكل طريق
‫ننشئه.
‫حتى الطريق العد زائد زائد.
‫ثم نتحقق مما إذا كان عدد الطرق مقسومًا على خمسة ، لذا فإن المقياس خمسة يساوي صفرًا ، ثم نريد
‫تنشيط البلورة.
‫لذا ، قم بتحويل النقطة إلى الطفل عند موضع الصفر ، لذا أضف أنفسنا ، واحصل على كائن اللعبة واضبطه على الوضع
‫النشط.
‫حقيقي.
‫لذلك فإن كل طريق خامس سيكون به بلورة نشطة الآن.
‫حسنا.
‫والآن دعونا نحفظ النص.
‫دعنا نعود إلى الوحدة ونرى ما إذا كان ذلك يعمل.
‫لذلك لن تحتوي قطع البداية على أي بلورات.
‫لذا فإن تلك التي أنشأناها يدويًا لن تحتوي على أي بلورات.
‫لذلك يتعين على اللاعب المرور بجزء معين هنا قبل أن يحصل على أي بلورات.
‫أوه ، الآن لدينا مشكلة صغيرة هنا ، رغم ذلك.
‫كما ترى ، الرسوم المتحركة لم تعد تعمل بشكل صحيح ، وربما يمكنك تخمين سبب ذلك.
‫حسنًا ، يتعلق ذلك بحقيقة أن لاعبنا كان في وقت ما في الهواء أو لمسه لجزء من الثانية
‫فقط.
‫وذلك عندما بدأ في عدم التحرك بشكل صحيح بعد الآن أو بشكل جيد ، ولم يعد يتحرك بشكل صحيح بعد الآن.
‫لذلك دعونا نصلح ذلك.
‫يمكننا إصلاح ذلك بطريقتين.
‫يمكن للمرء أن يكون هناك بعض المسافة بينهما في نقطة ما بحيث لا تتوافق الكتل تمامًا مع بعضها
‫البعض.
‫لذلك قد يكون هذا أحد الأسباب التي يمكن أن يكون سببًا آخر ، أو قد تكون طريقة
‫أخرى لحلها هي الانتقال إلى الرسوم المتحركة لشخصيتنا وإضافة انتقال جديد ، والقيام بالانتقال
‫من السقوط إلى الجري ، وسيستند ذلك إلى حالة لم نخلق.
‫لذلك دعونا ننشئ معلمة جديدة ودعنا نسمي هذا المشغل لم يعد يسقط.
‫لن يكون هذا هو الحل الأمثل بالرغم من ذلك.
‫لذا فإن الحل الأفضل هو التحقق مما إذا كانت هناك فجوات بين أجزائي هنا.
‫لكن هذا سيكون أحد الخيارات للقيام بذلك.
‫لا تسقط بعد الآن.
‫لذلك دعونا نفعل ذلك.
‫دعنا نعود إلى البرنامج النصي الخاص بنا هنا ويمكننا أن نذهب هنا في وحدة تحكم الرسم البياني الخاصة بنا في طريقة التحديث ، يمكننا أن
‫نقول إذا لم يكن المصبوب الأحمر في هذا الموضع بعد الآن ، فيمكننا
‫المضي قدمًا وتعيين المشغل على عدم السقوط بعد الآن.
‫أعتقد أن هذا ما أسميه.
‫لذلك دعونا نتحقق من ذلك.
‫دعونا نغير ذلك إلى عدم السقوط بعد الآن.
‫كان هذا هو المصطلح الصحيح.
‫لذا دعونا نعود للوحدة ونغير ذلك إلى عدم السقوط بعد الآن.
‫والآن دعنا نرى ما إذا كان قد تم حل هذه المشكلة.
‫لذلك دعونا نلعب اللعبة هنا.
‫يمكننا أن نذهب إلى مسرحنا وربما نجد رؤية أفضل لأشياء من هذا القبيل.
‫والآن لنبدأ اللعبة.
‫والآن دعونا نجمع بعضًا منها.
‫وكما ترون ، كان يسقط هناك.
‫كانت هناك فجوة صغيرة وكانت فجوة منذ البداية.
‫حسنًا ، النقطة التي أنشأت فيها الحقل يدويًا وحيث بدأنا في القيام بذلك من الناحية الإجرائية.
‫لذلك يجب أن تكون هناك فجوة صغيرة بينهما.
‫لذا فإن أحد الحلول التي أظهرتها لكم للتو هو مجرد رقعة ، رقعة صغيرة.
‫لا يجب عليك استخدام هؤلاء عند البث المباشر.
‫لذلك يجب أن تجد الفجوة الصغيرة التي لدينا هناك.
‫لكنني أعتقد أنه من الممل جدًا أن تظهر لك ذلك بالتفصيل.
‫فلنلقِ نظرة الآن على الفصل التالي.
‫أوه ، لقد فاتني ذلك.
‫لذا كما ترون ، فإن لعبتنا تفعل ما يجب أن تفعله.
‫لدينا لعبة منتهية؟
‫أود أن أقول أن لدينا الصوت.
‫يمكننا جمع تلك النقاط.
‫حسنًا ، لدينا درجة عالية وما إلى ذلك.
‫وأعتقد أن أهم شيء هو عالمنا الإجرائي.
‫الآن ، قد يكون التحدي أعلى قليلاً.
‫بالطبع ، يمكنك تغيير سرعة اللاعب خطوة بخطوة.
‫بعد ذلك ، بالطبع ، سيتعين عليك أيضًا تغيير الإيقاع الذي ننشئ به خريطتنا الإجرائية.
‫وها نحن ذا.
‫رائعة.
‫لذا أعتقد أنه يكفي أن تراني ربط 26 نقطة والفصل التالي سننشئ المباراة التالية.
‫لذلك آمل أن تكون متحمسًا وآمل أن تكون قد أخذت هذه اللعبة وجعلتها أفضل.
‫لذا فأنت تجعله أفضل.
‫لذا يرجى المضي قدمًا وإضافة الميزات التي تعتقد أنها ستجعل هذه اللعبة تبدو أفضل أو ما يجعل
‫هذه اللعبة مذهلة.
‫لذا يرجى المضي قدمًا والقيام بذلك ومشاركته معنا.
‫حسنا.
‫لذلك نراكم في الفصل التالي.