الوحدة هي محرك ألعاب شائع يستخدم على نطاق واسع لتطوير ألعاب الكمبيوتر والمشاريع التفاعلية الأخرى. عند إنشاء الألعاب ، غالبا ما يكون من الضروري تنفيذ التأخير من أجل التحكم في سلوك الكائنات وإنشاء تأثيرات مثيرة للاهتمام.
في هذه المقالة ، سنلقي نظرة على عدة طرق لتنفيذ زمن الوصول في الوحدة ونقدم أمثلة على التعليمات البرمجية لكل طريقة. سنتحدث عن استخدام وظيفة العائد ، وأجهزة ضبط الوقت ، واستخدام استدعاء وكوروتين.
قبل البدء في تنفيذ التأخير ، من المهم أن تتذكر أن الوحدة تعمل على مبدأ تحديث الإطارات. هذا يعني أن كل تنفيذ التعليمات البرمجية يتم داخل دورة التحديث ، والتي يتم تحديثها حوالي 60 مرة في الثانية. هذا هو السبب في أن بعض طرق التأخير قد يكون لها خطأ زمني صغير.
ومع ذلك ، هناك عدة طرق لتنفيذ التأخيرات في الوحدة والتي ستساعدك على التحكم في وقت تنفيذ التعليمات البرمجية وإنشاء تأثيرات الرسوم المتحركة وتنفيذ المنطق المعقد في اللعبة. دعونا ننظر إلى كل واحد منهم بمزيد من التفصيل!
- كيفية إنشاء تأخير في الوحدة: نصائح بسيطة وأمثلة التعليمات البرمجية
- طرق مختلفة لتأخير الوقت في الوحدة
- استخدام كوروتين لخلق تأخير
- استخدام استدعاء لإضافة تأخير
- أمثلة التعليمات البرمجية لتنفيذ الكمون في الوحدة
- سؤال وجواب
- كيف يمكنني إنشاء تأخير في الوحدة?
- كيفية استخدام انتظر ثانية?
- هل من الممكن إنشاء تأخير دون استخدام كوروتين في الوحدة?
- كيف يمكنني تعيين تأخير لتنفيذ التعليمات البرمجية في الوحدة?
- هل من الممكن تغيير وقت التأخير أثناء تنفيذ التعليمات البرمجية?
- هل من الممكن إجراء تأخير في الوحدة ليس في ثوان ، ولكن في الإطارات?
كيفية إنشاء تأخير في الوحدة: نصائح بسيطة وأمثلة التعليمات البرمجية
أحد الجوانب المهمة لإنشاء الألعاب في الوحدة هو العمل مع التأخير. تسمح لك التأخيرات بالتحكم في وقت تنفيذ إجراءات معينة وإنشاء فترات توقف بينها. فيما يلي نصائح بسيطة وأمثلة التعليمات البرمجية لمساعدتك في إنشاء تأخيرات في الوحدة.
1. باستخدام كوروتين
لتأخير التنفيذ. يوجد أدناه مثال على الكود يوضح استخدام كوروتين لإنشاء تأخير في الوحدة:
إينوميراتور ديلايكوروتين (تعويم ديلايتيمي)
{
العائد العائد الجديد انتظر ثانية (تأخير);
// الإجراءات التي يتعين القيام بها بعد التأخير
}
بداية الفراغ()
{
ستارتكوروتين (ديلايكوروتين (2 واو));
}
2. باستخدام استدعاء
. هنا هو نموذج التعليمات البرمجية التي تبين كيفية استخدام استدعاء لإنشاء تأخير:
طريقة تأخير الفراغ()
{
// الإجراءات التي يتعين القيام بها بعد التأخير
}
بداية الفراغ()
{
الاحتجاج ("طريقة التأخير" ، 2 و);
}
3. استخدام الوقت.الوقت
لإنشاء تأخير:
تعويم التأخير = 2 و;
تعويم وقت البدء;
بداية الفراغ()
{
وقت البدء = الوقت.الوقت;
}
تحديث باطل()
{
إذا (الوقت.الوقت-وقت البدء > = وقت التأخير)
{
// إجراءات لأداء بعد تأخير
}
}
باستخدام هذه النصائح البسيطة وأمثلة التعليمات البرمجية ، يمكنك بسهولة إنشاء تأخيرات في توقيت الوحدة والتحكم في لعبتك. حظا سعيدا مع إبداعك!
طرق مختلفة لتأخير الوقت في الوحدة
1. باستخدام كوروتين:
كوروتين هي ميزة خاصة يمكن إيقافها مؤقتا لعدد معين من الإطارات أو الثواني. في الوحدة ، يتيح لك ذلك إنشاء تأخير أو رسوم متحركة للمشاهد.
2. باستخدام طريقة استدعاء:
تسمح لك طريقة الاستدعاء في الوحدة باستدعاء طريقة أو وظيفة معينة بعد تأخير في ثوان.
3. استخدام الوقت.دلتا تايم:
الوقت.دلتا تايم هي قيمة تمثل الوقت بالثواني التي انقضت منذ عرض الإطار السابق. يتيح لك ذلك إنشاء رسوم متحركة سلسة وتأخيرات في اللعبة.
4. باستخدام نمط المراقب:
يسمح لك نمط المراقب بإنشاء تأخير زمني أثناء انتظار إشارة أو حدث معين. في الوحدة ، يمكن أن يكون هذا مفيدا لإنشاء تأثيرات تعتمد على أحداث اللعبة.
5. باستخدام ويتفورثاني:
ويتفورسيكوندس هي فئة في الوحدة التي تسمح لك الانتظار لعدد محدد من الثواني قبل مواصلة تنفيذ التعليمات البرمجية. هذا هو أكثر ملاءمة للتأخيرات القصيرة في اللعبة.
6. باستخدام العائد العائد:
باستخدام بيان العائد العائد في الوحدة ، يمكنك تأخير تنفيذ التعليمات البرمجية من قبل عدد معين من الإطارات أو الوقت.
7. استخدام الوقت.الجدول الزمني:
الوقت.الجدول الزمني هو القيمة التي تسيطر على مرور الوقت في اللعبة. يؤدي تحديد قيمته إلى تغيير سرعة اللعبة. يتيح لك ذلك إنشاء تأخيرات أو تسريع تنفيذ المهام.
8. باستخدام أجهزة ضبط الوقت:
يمكنك إنشاء جهاز ضبط الوقت الخاص بك من شأنها أن العد التنازلي الوقت وتنفيذ رمز معين بعد تأخير.
هناك العديد من الطرق لتنفيذ تأخير الوقت في الوحدة ، كل منها له خصائصه الخاصة ويمكن استخدامه في مواقف مختلفة. من المهم اختيار الطريقة المناسبة اعتمادا على متطلبات لعبتك ومهارات البرمجة الخاصة بك.
استخدام كوروتين لخلق تأخير
توفر الوحدة القدرة على استخدام كوروتينس لخلق تأخير في اللعبة. كوروتينس تسمح لك لتنفيذ التعليمات البرمجية بشكل غير متزامن والتحكم في وقت الانتظار في أقسام معينة من التعليمات البرمجية.
لاستخدام كوروتين ، يجب تحديد طريقة مع نوع الإرجاع إينوميراتور. سيتم تنفيذ هذه الطريقة على مراحل ، بدلا من الكود بأكمله مرة واحدة.
مثال على إنشاء كوروتين:
إينوميراتور ديلايكوروتين()
{
// الجزء الأول من كوروتين
تصحيح.سجل ("بداية كوروتين");
عائد العائد الجديد (3) ؛ / / إيقاف التنفيذ مؤقتا لمدة 3 ثوان
// الجزء الثاني من كوروتين
تصحيح.سجل ("اكتمال كوروتين");
}
في هذا المثال رمز ، أنشأنا كوروتين يسمى ديلايكوروتين. داخل الطريقة ، نحدد الإجراءات التي يجب تنفيذها في كل مرحلة من مراحل تنفيذ كوروتين. في هذه الحالة ، الجزء الأول من كوروتين إخراج الرسالة "كوروتين ستارت" إلى وحدة التحكم ، ومن ثم يتم تنفيذ تأخير 3 ثوان باستخدام وظيفة ويتفورسيكونس. بعد ذلك ، يتم تنفيذ الجزء الثاني من كوروتين ، والذي يعرض الرسالة"اكتمال كوروتين".
لبدء كوروتين ، تحتاج إلى تسميته باستخدام طريقة ستارت كوروتين:
ستارتكوروتين (ديلايكوروتين());
في هذا المثال ، نسمي روتين التأخير ونبدأ في تنفيذه. وفي الوقت نفسه ، لاحظ أنه بعد استدعاء ستارتكروتين ، وسوف يستمر البرنامج التنفيذ أبعد من ذلك ، وسيتم تنفيذ كوروتين بشكل غير متزامن.
يمكن أن تكون الكروتينات مفيدة في تنفيذ تأخيرات مختلفة في اللعبة ، مثل الانتظار قبل الرسوم المتحركة ، والتأخير قبل تبديل المستويات ، والعمليات الأخرى غير المتزامنة.
استخدام استدعاء لإضافة تأخير
في الوحدة ، هناك عدة طرق لإضافة تأخير إلى تنفيذ التعليمات البرمجية ، واحدة منها تستخدم طريقة الاستدعاء. تسمح لك هذه الطريقة باستدعاء الطريقة أو الوظيفة المحددة بعد فترة زمنية معينة.
لاستخدام طريقة استدعاء ، يجب أن تمر عليه اسم الأسلوب (أو وظيفة) ليتم استدعاؤها والوقت تأخير في ثوان. على سبيل المثال ، لاستدعاء طريقة سوميثود بعد 2 ثانية ، يمكنك استخدام التعليمات البرمجية التالية:
استدعاء ("طريقة ما" ، 2 و);
يمكن استدعاء طريقة الاستدعاء في كل من الفصول العادية وفئات مكونات الوحدة. ومع ذلك ، في حالة فئات المكونات ، من الضروري الانتباه إلى حقيقة أنه سيتم تنفيذ الاستدعاء على الخيط الرئيسي للعبة. إذا كنت بحاجة إلى استدعاء الطريقة على مؤشر ترابط آخر ، فمن المستحسن استخدام طرق أخرى مثل كوروتينس أو الوقت.دلتا تايم.
استدعاء يسمح لك أيضا لتمرير المعلمات إلى وظيفة يجري استدعاؤها. على سبيل المثال ، إذا قبلت طريقة سوميثود معلمة واحدة من نوع إنت ، يمكنك تمرير هذه المعلمة على النحو التالي:
استدعاء ("طريقة ما" ، 2 و، 10);
في المثال أعلاه ، بعضسيتم استدعاء طريقة بعد 2 ثانية مع المعلمة 10.
ومع ذلك ، فإن استخدام استدعاء لديه بعض القيود. أولا ، يجب أن تكون الطريقة التي يتم استدعاؤها عامة وتحتاج إلى التأكد من تحديد اسمها ومعلماتها بشكل صحيح. ثانيا ، لاحظ أن استدعاء يدعو الأسلوب مرة واحدة فقط. إذا كنت بحاجة إلى تكرار استدعاء الطريقة مع تأخير ، فمن الأفضل استخدام طرق أخرى مثل كوروتينس أو إنفوكيريبيتينغ.
في أي حال ، باستخدام استدعاء يمكن أن تكون مفيدة عندما تحتاج إلى إضافة تأخير لتنفيذ رمز معين في الوحدة. تتيح لك هذه الطريقة التحكم في وقت التأخير وتمرير المعلمات إلى الوظيفة المسماة ، مما يجعلها أداة مرنة للعمل مع التأخير الزمني في مشاريع الألعاب.
أمثلة التعليمات البرمجية لتنفيذ الكمون في الوحدة
في الوحدة ، هناك عدة طرق لتنفيذ التأخير في اللعبة. فيما يلي بعض أمثلة التعليمات البرمجية التي قد تساعد:
- بداية الفراغ()
- إينوميراتور ديلايكوروتين()
// تأخر الرمز الخاص بك
}
بداية الفراغ()
{