Oneshot Gems
अभी खेलें

गेम डेवलपर के लिए

प्रत्येक HUD मान को आधिकारिक गेम स्थिति से प्रस्तुत करें

एक स्कोर डिस्प्ले जो गेम से असहमत होता है, उसमें आमतौर पर सच्चाई के दो प्रतिस्पर्धी स्रोत होते हैं: एक मान सिमुलेशन में बदलता है और दूसरा टकराव या एनीमेशन कॉलबैक द्वारा सीधे अपडेट किया जाता है। गेम मॉडल को आधिकारिक के रूप में चुनें, फिर HUD को उसकी वर्तमान स्थिति से प्रस्तुत करें। यह संकीर्ण स्वामित्व नियम डुप्लिकेट स्कोर परिवर्तन, पुराने लेबल और टाइमर टेक्स्ट को रोकने में मदद करता है जो गेम समाप्त होने के बाद भी जारी रहता है। यह उपयोगी है चाहे HUD कैनवास पर खींचा गया हो या DOM तत्वों के रूप में प्रस्तुत किया गया हो।

इस पृष्ठ पर

एक बार स्थिति अपडेट करें, डिस्प्ले प्राप्त करें

जब एक सिक्का एकत्र किया जाता है, तो गेम इवेंट या सिमुलेशन चरण में model.score को अपडेट करें। यूआई अद्यतन बिंदु पर, लेबल में अलग से एक जोड़ने के बजाय model.score से प्रदर्शित मान प्रस्तुत करें। DOM HUD के लिए, मान बदलने पर textContent को अपडेट करें; कैनवास HUD के लिए, उसी मॉडल फ़ील्ड से संख्या निकालें। एक दृश्य गणना प्रतिबद्ध स्कोर की ओर चेतन कर सकती है।

कई लेबलों को प्रभावित करने वाली घटनाओं के लिए एकल संक्रमण का उपयोग करें। यदि जीवन खोने से भी खेल रुक जाता है और एक पैनल खुल जाता है, तो स्थिति परिवर्तन को एक बार रिकॉर्ड करें, फिर प्रतिपादन को जीवन, स्थिति और उपलब्ध कार्यों को एक साथ प्रतिबिंबित करने दें। पैनल कॉलबैक को स्वतंत्र रूप से उसी वेरिएबल को बदलने से बचें जो टकराव हैंडलर पहले ही बदल चुका है।

त्वरित अपडेट और अंतिम स्थिति का परीक्षण करें

त्वरित उत्तराधिकार में दो पिकअप ट्रिगर करें और सत्यापित करें कि HUD किसी अपडेट को छोड़ने के बजाय परिणामी कुल दिखाता है। रोकें, दौड़ समाप्त करें और पुनः आरंभ करें; पुष्टि करें कि टाइमर बंद हो जाता है, अंतिम स्कोर इच्छित समय पर दिखाई देता रहता है, और अगला रन अपने निर्धारित मानों से शुरू होता है। यदि आप प्रदर्शन के लिए requestAnimationFrame का उपयोग करते हैं, तो इसे एक रेंडरिंग शेड्यूल के रूप में मानें: MDN नोट करता है कि इसका कॉलबैक एक-शॉट है और दूसरे फ्रेम के लिए फिर से अनुरोध किया जाना चाहिए, इसलिए राज्य संक्रमण को उस कोड से बाहर रखें जो गलती से प्रति फ्रेम दो बार चलता है।

अनावश्यक डिस्प्ले अपडेट कम करें

DOM टेक्स्ट के लिए, यदि अपडेट बार-बार होते हैं, तो लिखने से पहले अगले स्वरूपित मान की वर्तमान मान से तुलना करें। कैनवास HUD के लिए, प्रत्येक ईवेंट कॉलबैक से एक लेबल को पेंट करने के बजाय सिमुलेशन के बाद समूह ड्राइंग। विकास के दौरान दृश्यमान HUD के बगल में मॉडल का डिबग रीडआउट जोड़ें; यदि वे मान भिन्न हैं, तो दोष प्रतिपादन में है, जबकि गलत परिणाम वाले मानों का मिलान मॉडल अद्यतन पर वापस इंगित करता है।

⁨गेम HUD को सिंक्रोनाइज़ करना⁩ से जुड़े सवाल

क्या टक्कर हैंडलर के अंदर स्कोर लेबल अपडेट होना चाहिए?

हैंडलर आधिकारिक स्कोर स्थिति अपडेट कर सकता है; उसी स्थिति को फ़ॉर्मैट करके दिखाने का काम एक ही रेंडरिंग पथ को करने दें। लेबल में अलग से बढ़ने वाला दूसरा स्कोर न रखें.

HUD पिछले रन का मान क्यों दिखाता है?

एक पुनरारंभ HUD रेंडर को ट्रिगर किए बिना सिमुलेशन स्थिति को रीसेट कर सकता है, या एक पैनल एक पुरानी प्रतिलिपि रख सकता है। एक ट्रांज़िशन के माध्यम से मॉडल को रीसेट करें और तुरंत नई स्थिति प्रस्तुत करें।

आगे पढ़ें

कोई पुरानी जानकारी दिखी? सुधार की जानकारी दें

खेलते रहें।

मुफ़्त ब्राउज़र गेम, जब आपका मन हो तब खेलें। कुछ मज़ेदार खोजें और उसे अपना अगला पसंदीदा बनाएँ।

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