الدرس 1 من 10
حلقة اللعب
- 14 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
update ثم draw، ستّين مرّة في الثانية
الشرح
كل لعبة — من Pong إلى أكبرها — حلقة واحدة تتكرّر: حدّث الحالة، ثم ارسمها. وrequestAnimationFrame ينادي الحلقة قبل كل إطار يرسمه المتصفح، نحو ستّين مرّة في الثانية.
والسرّ الذي يفصل اللعبة المتقنة عن المتعثّرة: الحركة تُضرب في dt — الزمن منذ الإطار السابق. بلا ذلك تسرع اللعبة على الشاشات السريعة وتبطؤ على البطيئة.
وافصل update عن draw: التحديث منطق خالص لا يعرف شيئًا عن الرسم، فيُختبر وحده ويُعاد استعماله. والرسم يقرأ الحالة فقط.
المطلوب
اكتب update(ball, dt, width): تحرّك الكرة بـ vx * dt، وإن تجاوزت الجدار الأيمن أو الأيسر ارتدّت (يُعكس vx). الرسم والحلقة جاهزان.
معايير التصحيح
5 معايير- update دالة معرَّفة
- الحركة تتناسب مع dt
- الارتداد عن الجدار الأيمن
- والارتداد عن الأيسر
- لا تتحرّك إن كان dt صفرًا