تجميع الوقت المنقضي وتشغيل التحديثات المحدودة
في كل رد اتصال للرسوم المتحركة، قم بإضافة الوقت المنقضي إلى المجمع. بينما يحتوي المجمع على خطوة واحدة على الأقل، قم بتحديث الفيزياء بفاصل زمني ثابت مثل 1/60 من الثانية واطرح هذا الفاصل الزمني. ثم قم بتقديم أحدث حالة. قم بتعيين الحد الأقصى لعدد خطوات اللحاق بكل إطار؛ وإلا فإن التوقف المؤقت الطويل قد يؤدي إلى تراكم كبير يستهلك المزيد من الوقت ويعمق التأخير. قرر بوضوح ما إذا كان سيتم إسقاط الوقت الزائد أو تحديده أو معالجته بواسطة قاعدة استرداد أخرى.
حافظ على اتساق الوحدات. إذا تم قياس السرعة بوحدات عالمية في الثانية، فاضربها بالخطوة الثابتة داخل كل تحديث للمحاكاة. لا تضرب نفس السرعة في الوقت المنقضي الكامل للإطار وقم أيضًا بتنفيذ عدة تحديثات ثابتة، وإلا سيتم حساب الحركة مرتين.
التعامل مع الإدخال والعرض ضمن حدودهم الخاصة
خذ عينة من الإدخال المحتفظ به في كل خطوة محاكاة أو قم بوضع الإجراءات التي يتم تنفيذها مرة واحدة في قائمة الانتظار حتى تستهلكها الخطوة. في حالة الضغط على مفتاح بين إطارين، تأكد من عدم فقدانه قبل التحديث التالي. يمكن للعرض أن يستكمل بين الحالات الفيزيائية، بينما يستخدم التصادم والتسجيل حالة المحاكاة. تصف MDN requestAnimationFrame بأنه رد اتصال لمرة واحدة تمت جدولته قبل إعادة الرسم وتنصح باستخدام الطابع الزمني الخاص به لحساب التقدم؛ يستخدم المجمع هذا الطابع الزمني للحفاظ على فواصل التحديث ثابتة.
اختبار حدود الحلقة
قارن نفس الحركة القصيرة والاصطدام عبر الإطارات العادية، ومحاكاة الإطار البطيء، والتوقف المؤقت الأطول. تأكد من أن اللاعب لا يحفر نفقًا عبر جدار رفيع، أو يكتسب سرعة إضافية بعد توقف طويل للإطار، أو يتسبب في حدوث تصادم عدة مرات أثناء اللحاق بالركب. اختبار الإيقاف المؤقت وإرجاع علامة التبويب المخفية وفقًا للقاعدة المقصودة. إذا كانت حلقة الخطوات الثابتة تجعل المحاكاة مستقرة ولكن لا يزال هناك تصادم يحدث بسرعة عالية، فاستخدم طريقة تصادم مناسبة للحركة بدلاً من رفع تردد العرض.
أسئلة عن فيزياء اللعبة ذات الخطوات الزمنية الثابتة
هل تضمن الخطوة الزمنية الثابتة الفيزياء الحتمية؟
لا، إنها تجعل الفاصل الزمني للمحاكاة متسقًا، لكن توقيت الإدخال والرياضيات وترتيب التصادم لا يزال من الممكن أن يؤدي إلى حدوث تباين. التحكم في تلك بشكل منفصل للاختبارات التي تتطلب إعادة التشغيل.
لماذا يتم وضع حد أقصى لتحديثات اللحاق بالركب بعد توقف الإطار؟
بدون حدود، يمكن أن يحتكر اللحاق بالركب الإطارات اللاحقة ويزيد التأخير سوءًا. اختر واختبر سياسة الاسترداد التي تناسب اللعبة، بما في ذلك ما إذا كان من الممكن التخلص من وقت المحاكاة.
للمزيد من القراءة
هل لاحظت معلومة قديمة؟ الإبلاغ عن تصحيح