# गति को समय पर निर्भर बनाएं, फ़्रेम गिनती पर नहीं

> खेल की गति के लिए बीता हुआ समय लागू करें, एक सुरक्षित कैच-अप नीति चुनें, और विभिन्न ताज़ा दरों पर और स्टालों के बाद गति का परीक्षण करें।

- URL: https://oneshotgems.ai/hi/topics/delta-time-in-games
- श्रेणी: गेम डेवलपर के लिए
- प्रकार: गाइड
- अपडेट किया गया: 5 अक्टूबर 2026

डेल्टा समय अद्यतनों के बीच बीता हुआ समय है। किसी वेग को बीते हुए सेकंड से गुणा करने पर एक वस्तु को एक सेकंड के दौरान समान दूरी तय करने की सुविधा मिलती है, चाहे ब्राउज़र 45 फ्रेम खींचता हो या 144। मुश्किल हिस्सा यह तय करना है कि जब बीता हुआ समय असामान्य रूप से बड़ा हो जाए तो क्या करना चाहिए। यदि कोई टैब निलंबित कर दिया गया था या किसी महंगे कार्य ने मुख्य थ्रेड को अवरुद्ध कर दिया था, तो पूरे अंतर को आँख बंद करके लागू करने से एक छलांग लग सकती है जो गणितीय रूप से सुसंगत है लेकिन खेलने के लिए अप्रिय है।

## इकाइयों को कोड में दृश्यमान रखें

एक समय इकाई चुनें और लगातार उसी का उपयोग करें। यदि गति पिक्सेल प्रति सेकंड में और डेल्टा सेकंड में है, तो स्थिति गति × डेल्टा के बराबर आगे बढ़ती है। हाथ से जाँचने के लिए 80 पिक्सेल प्रति सेकंड पर सेट मार्कर को दस सेकंड चलाएँ: रेंडर की संख्या से स्वतंत्र होकर उसे गेम-वर्ल्ड में लगभग 800 पिक्सेल चलना चाहिए।

performance.now() के मिलीसेकंड को प्रति-सेकंड गति के साथ सीधे न मिलाएँ; पहले 1,000 से भाग दें। deltaSeconds या speedPixelsPerSecond जैसे नामों में इकाइयाँ शामिल करें, ताकि बाद का बदलाव छोटी गति को चुपचाप हज़ार गुना न कर दे।

## लंबे ठहराव का प्रभाव सीमित करें

सरल एक्शन गेम में डेल्टा की सोच-समझकर चुनी गई अधिकतम सीमा रखें और भारी लोड के दौरान सिमुलेशन के थोड़ी देर धीमा होने को स्वीकार करें। दोहराए जा सकने वाले चरणों वाली भौतिकी सिमुलेशन में समय जमा करें और निश्चित अंतराल से आगे बढ़ें; समय की भरपाई करने वाले अपडेट की संख्या सीमित रखें ताकि रिकवरी प्रक्रिया पेज को व्यस्त न कर दे। दोनों तरीकों के अलग-अलग लाभ और लागत हैं; गेम के अनुभव और नियमों के अनुसार चुनें।

अपडेट के बीच कृत्रिम विराम डालकर जाँचें, फिर सीधी गति और रास्ते के अंत में टक्कर की तुलना करें। यदि वस्तु पतली बाधा को पार कर जाती है, तो छोटे उपचरण या swept collision test की ज़रूरत हो सकती है। केवल रेंडर दर बदलने से नियम-स्तर की समस्या ठीक नहीं होगी।

## सवाल

**क्या डेल्टा समय भौतिकी को नियतिवादी बनाता है?** नहीं। बदलते अपडेट अंतराल से एकीकरण के अलग-अलग परिणाम आ सकते हैं। निश्चित सिमुलेशन चरण से दोहराव बेहतर होता है, लेकिन इनपुट का समय और floating-point गणना के विवरण भी मायने रखते हैं।

**कौन सी घड़ी को बीता हुआ समय बताना चाहिए?** एनीमेशन कॉलबैक टाइमस्टैम्प या performance.now() का उपयोग करें; MDN दोनों को उच्च-रिज़ॉल्यूशन समय स्रोत बताता है। छोटे फ़्रेम अंतराल के लिए कैलेंडर तारीखें न लें, क्योंकि सिस्टम घड़ी के बदलाव का सिमुलेशन समय से संबंध नहीं है।

## अपनी जिज्ञासा के साथ आगे बढ़ें

- [एक विश्वसनीय ब्राउज़र गेम लूप बनाएं](https://oneshotgems.ai/hi/topics/browser-game-loop): किसी खिलाड़ी के डिस्प्ले रिफ्रेश रेट पर सिमुलेशन गति को बांधे बिना ब्राउज़र गेम अपडेट की संरचना करना और एनीमेशन फ्रेम के आसपास ड्राइंग करना।
- [छोटे गेम के लिए टक्कर जाँच चुनें](https://oneshotgems.ai/hi/topics/game-collision-detection): टकराव का प्रतिनिधित्व चुनें जो आपके गेम में फिट बैठता है, अनावश्यक जोड़ी जांच को कम करें, और बाधाओं से गुजरने वाली वस्तुओं का निदान करें।
- [गेम फिजिक्स के लिए एक निश्चित टाइमस्टेप का उपयोग करें](https://oneshotgems.ai/hi/topics/fixed-timestep-game-physics): एक निश्चित सिमुलेशन चरण, सीमित कैच-अप कार्य और स्टालों और टकरावों के लिए परीक्षणों के साथ रेंडरिंग से भौतिकी अपडेट को अलग करें।

## आगे पढ़ें

- [MDN: requestAnimationFrame() का समय](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame)
- [एमडीएन: Performance.now()](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)

---
मूल पेज: https://oneshotgems.ai/hi/topics/delta-time-in-games
