0%
حلقة اللعبة وFPS وdelta time — الفصل 20

الفصل 20 — حلقة اللعبة وFPS وdelta time

الجزء 2أ — أساسيات اللعبة ثنائية الأبعاد · الفصل 20 من 62 · 6 س

الفصل 20 — حلقة اللعبة وFPS وdelta time

المستوى: متوسط المدة المقدّرة: 6 س المتطلبات: الفصل 19 — Flutter بسرعة للألعاب (runApp، StatefulWidget، setState، Ticker، CustomPainter) ما ستتمكن من فعله في النهاية: كتابة حلقة لعبة كاملة بـ Dart وFlutter خالص، قياس الـ FPS، وتحريك كائن بنفس السرعة الحقيقية على كل الأجهزة بفضل الـ delta time.


20.0 — أهداف الفصل

في نهاية هذا الفصل، ستكون قادرًا على:

  • شرح ما يميّز تقنيًا لعبة عن تطبيق كلاسيكي؛
  • وصف مخطط إدخالات → تحديث → رسم وإعادة رسمه من الذاكرة؛
  • كتابة أول حلقة لعبة في Dart console؛
  • شرح لماذا يجمّد while (true) تطبيق Flutter؛
  • تعريف صورة (frame) ومعدّل الإطارات في الثانية (FPS)؛
  • تحويل عدد من FPS إلى مدة إطار بالميلي ثانية، والعكس؛
  • إثبات خطأ تحريك مكتوب x += 5 لكل إطار؛
  • تعريف الـ delta time وكتابة x += vitesse * dt؛
  • التفكير بـ بكسلات في الثانية بدل بكسلات لكل إطار؛
  • حساب dt انطلاقًا من Stopwatch؛
  • استخدام Ticker وSchedulerBinding لقيادة حلقة Flutter؛
  • عرض عدّاد FPS وتنعيمه بمتوسط متحرّك؛
  • التعرّف على dt شاذ بعد ذروة تأخير وتسقيفه بـ clamp؛
  • تنفيذ خطوة زمنية ثابتة مع مركّم (accumulateur)؛
  • مقارنة الخطوة الثابتة والمتغيّرة والاختيار عن علم؛
  • فصل التحديث عن الرسم والاستيفاء بين حالتين؛
  • إيقاف اللعبة مؤقتًا، أو إبطاؤها، أو تسريعها بعامل زمني؛
  • تسمية ما سيفعله محرّك Flame مكانك بدقة ابتداءً من الفصل 27؛
  • تجميع محرّك حلقة صغير قابل لإعادة الاستخدام لكل الفصول التالية.

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!