الدرس 5 من 10

الجاذبية والقفز

هدف الدرس

تسارع، وقفز من الأرض فقط

01

الشرح

الجاذبية لا تحرّك الجسم مباشرة؛ تغيّر سرعته. كل إطار تزيد vy بمقدار GRAVITY * dt، ثم يتحرّك y بمقدار vy * dt. فيبدأ السقوط بطيئًا ويتسارع، كما في الواقع.

ووحدة GRAVITY بكسل في الثانية المربّعة، فلا بد من dt في الخطوتين. ومن ينساه تجري لعبته على شاشة 144 هرتز أسرع منها على 60 بأكثر من الضعف.

والأرض تُعالَج بعد الحركة: إن تجاوز أسفل الجسم floorY أُعيد فوقها تمامًا وصُفّرت vy. ولو اكتفيت بإيقاف الحركة لغاص في الأرض بمقدار آخر خطوة. ومن الشرط نفسه تعرف onGround؛ ولا قفز إلا منها، وإلا صعد اللاعب في الهواء بالضغط المتكرّر.

02

المطلوب

اكتب update(p, dt, floorY) لجسم { y, h, vy, onGround }: الجاذبية، ثم الحركة، ثم الأرض، مع ضبط onGround في كل استدعاء. واكتب jump(p): تجعل vy تساوي -JUMP_SPEED إن كان على الأرض، ولا تفعل شيئًا غير ذلك. للتجربة انقر المعاينة ثم اضغط المسافة.

معايير التصحيح

6 معايير
  1. الجاذبية تزيد vy بـ GRAVITY × dt
  2. الموضع يتحرّك بـ vy × dt
  3. يقف على الأرض بلا غوص
  4. onGround يطابق الملامسة
  5. القفز من الأرض فقط
  6. القفزة ترفعه عن الأرض فعلًا
index.html
المعاينة
index.html100%
–/6

اضغط «تشغيل» ليبدأ الفحص.

6 معايير في بطاقة «المطلوب».